欢迎来到天天文库
浏览记录
ID:18998180
大小:770.50 KB
页数:28页
时间:2018-09-27
《第01章 tcpip网络编编程基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux/Unix网络编程信息工程学院2网络编程时间安排上课:30学时实验10学时参考教材《网络编程与分层协议设计》.刘飚.机工出版社《Linux/Unix网络编程》.甘刚.水利水电出版社《用TCP/IP进行网际互联.第一卷》《用TCP/IP进行网际互联.第三卷》DouglasE.Comer电子工业出版社3先修课程C语言数据结构计算机网络操作系统Linux的基本使用第1章TCP/IP网络编程基础5客户机/服务器编程模型Server程序Client程序activeopenconnection6循环式服务器客户机/服务器编程模型CS1、数据请求2、数据响应无连接3、数据请求4、数据响应
2、1、连接请求2、连接响应5、关闭请求6、关闭响应CS8并发式服务器客户机/服务器编程模型CSCCCC10循环式vs.并发服务器绑定地址监听连接接收连接处理连接断开连接接收请求处理请求返回响应绑定地址监听连接接收连接创建子进程关闭连接套接字处理连接关闭连接套接字终止子进程关闭监听套接字服务器主进程服务器子进程TCP循环式服务器TCP并发服务器11TCPIP互联网www.sina.com.cnIE浏览器QQQQOSI与TCP/IP应用层表示层会话层传输层网络层数据链路层物理层应用层IPv4,IPv6网络接口层TCPUDPOSI模型TCP/IP模型13TCPIP网络协议栈传输层(TCP,UD
3、P)网络层(IP)数据链路层(Ethernet,…)物理层应用层(HTTP,FTP,SMTP,…)LinuxkernelUserspace网络编程接口15IP地址和端口源IP、源端口、目的IP和目的端口eg.WEB服务器和客户端间的数据传输过程UDP:用户数据报协议UDP提供无连接服务UDP缺乏可靠性支持,应用程序必须实现:确认、超时、重传、流控等UDP面向记录服务UDP数据报格式源端口目的端口长度校验和数据01531#ifdef__FAVOR_BSDstructudphdr{u_int16_tuh_sport;/*sourceport*/u_int16_tuh_dport;/*des
4、tinationport*/u_int16_tuh_ulen;/*udplength*/u_int16_tuh_sum;/*udpchecksum*/};#elsestructudphdr{u_int16_tsource;u_int16_tdest;u_int16_tlen;u_int16_tcheck;};#endifTCP:传输控制协议TCP是面向连接的。TCP提供可靠性,实现了丢失重传。TCP通过给所发送数据的每一个段管理一个序列号进行排序。TCP提供流量控制和拥塞控制。TCP的连接是全双工的。TCP协议数据段格式HLEN窗口序列号确认号源端口目的端口保留码位校验和紧急指针选项填
5、充字节数据URGACKPSHRSTSYNFIN015317首部数据区TCP协议数据段格式(续)structtcphdr{WORDSourPort;WORDDestPort;DWORDSeqNo;DWORDAckNo;BYTEHLen;BYTEFlag;WORDWindow;WORDChkSum;WORDUrgPtr;/*Putoptionshere.*/};TCP协议数据段格式(续)几个需要说明的字段HLEN:首部长度,以4字节(32位)为单位。tcp数据段首部包括固定和变长两部分;窗口:为通告窗口;URG位:如果使用紧急数据指针,则将这一位设为1ACK位:如果确
6、认序列号有效,则设为1;PSH位:表示”推”数据,如果这一位设置成1,表示希望接收方在接收到这个数据段之后,将它立即传送给高层应用程序,而不是缓存起来。TCP协议数据段格式(续)RST位:表示请求重置连接。当TCP协议接收到一个不能处理的数据段时,向对方TCP协议发送这种数据段,表示这个数据段所标识的连接出现了某种错误,请求对方TCP协议将这个连接清除。有3种情况可能导致TCP协议发送RST数据段(1)SYN数据段指定的目的端口处没有接收进程等待;(2)TCP协议想放弃一个已经存在的连接;(3)TCP接收到一个数据段,但是这个数据段所标识的连接不存在。接收到RST数据段的TCP协议立即
7、将这条连接非正常断开,并向应用程序报告;TCP协议数据段格式(续)SYN位:请求建立连接。tcp用这种数据段向对方tcp协议请求建立连接,在这个数据段中,tcp协议将它选择的初始序列号通知对方,并且与对方协议协商最大数据段的大小。FIN位:请求关闭连接。当协议收到对这个数据段的确认后,成功关闭写方向的连接,因为tcp连接是全双工的,在发送了FIN数据段之后,它仍能接收数据,直至对方也发送FIN数据段。紧急指针:如果设置了URG位,这个字段指出紧
此文档下载收益归作者所有