3TCPIP协议(3-4).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲 TCP/IP协议 协议体系 OSI与TCP/IP比较 网络概貌原理图big picture 传输层协议 UDP TCP 网络程序结构 程序结构 举例 IP网络结构 物理拓扑结构 网络连接设备 End-to-End vs. Hop-by-Hop OSI与TCP/IP 网络概貌原理图 --通过路由器连接的两个网络 网络概貌原理图 --数据进入协议栈时的封装 网络概貌原理图 --数据进入协议栈时的封装 网络概貌原理图 --数据进入协议栈时的封装 对等通信 缓冲区 网络概貌原理图 --TCP/IP协议族概貌 传输层协议 UDP协议 UDP提供无连接服务 UDP缺乏可靠性支持,应用程序必须实现:确认、超时、重传、流控等 UDP报文格式实现 #ifdef __FAVOR_BSD //是否支持BSD struct udphdr { u_int16_t uh_sport; /* source port */ u_int16_t uh_dport; /* destination port */ u_int16_t uh_ulen; /* udp length */ u_int16_t uh_sum; /* udp checksum */ }; #else struct udphdr { u_int16_t source; u_int16_t dest; u_int16_t len; u_int16_t check; }; #endif TCP协议 TCP特点 TCP报文格式与实现 TCP原理 连接建立 连接终止 协议状态转移图 面向连接的客户-服务器模式 网络地址 TCP协议特点 TCP是面向连接的。 TCP提供可靠性,实现了丢失重传 如何判断数据包丢失? 发送-等待确认-发送-等待确认 等多长时间? RTT的估算 TCP提供流量控制:通告窗口 流量控制、拥塞 接收端来不及接收 丢包率很大 TCP的连接是全双工的。 TCP报文格式 TCP报文格式实现 struct tcphdr { WORD SourPort; WORD DestPort; DWORD SeqNo; DWORD AckNo; BYTE HLen; BYTE Flag; WORD Window; WORD ChkSum; WORD UrgPtr; /* Put options here. */ }; TCP格式说明 HLEN:首部长度,以4字节(32位)为单位。tcp数据段首部包括固定和变长两部分; 窗口:为通告窗口; URG位:如果使用紧急数据指针,则将这一位设为1 ACK位:如果确认序列号有效,则设为1; PSH位:表示”推”数据,如果这一位设置成1,表示希望接收方在接收到这个数据段之后,将它立即传送给高层应用程序,而不是缓存起来。 TCP格式说明(续) RST位: 含义 表示请求重置连接。当TCP协议接收到一个不能处理的数据段时,向对方TCP协议发送这种数据段,表示这个数据段所标识的连接出现了某种错误,请求对方TCP协议将这个连接清除。 如下情况导致TCP协议发送RST数据段 (1)SYN数据段指定的目的端口处没有接收进程等待; (2)TCP协议想放弃一个已经存在的连接; RST处理 接收到RST数据段的TCP协议立即将这条连接非正常断开,并向应用程序报告; TCP格式说明(续) SYN位: 请求建立连接。tcp用这种数据段向对方tcp协议请求建立连接,在这个数据段中,tcp协议将它选择的初始序列号通知对方,并且与对方协议协商最大数据段的大小。 FIN位: 请求关闭连接。当协议收到对这个数据段的确认后,成功关闭写方向的连接,因为tcp连接是全双工的,在发送了FIN数据段之后,它仍能接收数据,直至对方也发送FIN数据段。 紧急指针: 如果设置了URG位,这个字段指出紧急数据相对于这个数据段的开始序列号的偏移量。tcp协议只提供一字节的紧急数据,但由于历史原因,紧急指针指向紧急数据的下一个位置. 需要马上发送数据。 TCP连接建立过程 被动打开 服务器必须准备好接受外来的连接。通过调用socket, bind, listen函数完成。称为被动打开。 主动打开 客户通过调用connect进行主动打开。这引起客户TCP发送一个SYN分节,告诉服务器客户将在连接中发送的数据的初始序列号。 SYN 服务器必须确认客户的SYN,同时自己也得发送一个SYN分节。服务器以单个分节向客户发送SYN和对客户的SYN的ACK。 客户必须确认服务器的SYN。 TCP通过三路握手建立连接 TCP连接终止 TCP一般用四个分节终止一个连接: 主动关闭 某个进程首先调用close, 这一端的TCP于是发送一个FIN分节

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档