- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
01传输层
传输层知识1传输层重要协议
自顶向下知识1什么是TCP?
传输层知识1TCP协议的报文格式传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议;是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议
传输层知识1TCP协议的3个阶段
传输层知识1TCP协议的报文格式在TCP/IP协议栈中,IP协议层只关心如何使数据能够跨越本地网络边界的问题,而不关心数据如何传输。整体TCP/IP协议栈,共同配合一起解决数据如何通过许许多多个点对点通路,顺利传输到达目的地。一个点对点通路被称为一“跳”(hop),通过TCP/IP协议栈,网络成员能够在许多“跳”的基础上建立相互的数据通路。传输层TCP协议提供了一种面向连接的、可靠的字节流服务,其数据帧格式,大致如下图所示:
传输层知识1TCP协议的报文格式(一)源端口号源端口号表示报文的发送端口,占16位。源端口和源IP地址组合起来,可以标识报文的发送地址。(二)目的端口号目的端口号表示报文的接收端口,占16位。目的端口和目的IP地址相结合,可以标识报文的接收地址。TCP协议是基于IP协议的基础上传输的,TCP报文中的源端口号+源IP,与TCP报文中的目的端口号+目的IP一起,组合起来唯一性的确定一条TCP连接。
传输层知识1TCP协议的报文格式(三)序号(SequenceNumber)TCP传输过程中,在发送端出的字节流中,传输报文中的数据部分的每一个字节都有它的编号。序号(SequenceNumber)占32位,发起方发送数据时,都需要标记序号。序号(SequenceNumber)的语义与SYN控制标志(ControlBits)的值有关。根据控制标志(ControlBits)中的SYN是否为1,序号(SequenceNumber)表达不同的含义:(1)当SYN=1时,当前为连接建立阶段,此时的序号为初始序号ISN((InitialSequence
Number),通过算法来随机生成序号;(2)当SYN=0时在数据传输正式开始时,第一个报文的序号为ISN+1,后面的报文的序号,为前一个报文的SN值+TCP报文的净荷字节数(不包含TCP头)。比如,如果发送端发送的一个TCP帧的净荷为12byte,序号为5,则发送端接着发送的下一个数据包的时候,序号的值应该设置为5+12=17。在数据传输过程中,TCP协议通过序号(SequenceNumber)对上层提供有序的数据流。发送端可以用序号来跟踪发送的数据量;接收端可以用序号识别出重复接收到的TCP包,从而丢弃重复包;对于乱序的数据包,接收端也可以依靠序号对其进行排序。
传输层知识1TCP协议的报文格式-确认序号(四)确认序号(AcknowledgmentNumber)确认序号(AcknowledgmentNumber)标识了报文接收端期望接收的字节序列。如果设置了ACK控制位,确认序号的值表示一个准备接收的包的序列码,注意,它所指向的是准备接收的包,也就是下一个期望接收的包的序列码。
传输层知识1TCP协议的报文格式(四)确认序号(AcknowledgmentNumber)举个例子,假设发送端(如Client)发送3个净荷为1000byte、起始SN序号为1的数据包给Server服务端,Server每收到一个包之后,需要回复一个ACK响应确认数据包给Client。ACK响应数据包的ACK
Number值,为每个Client包的为SN+包净荷,既表示Server已经确认收到的字节数,还表示期望接收到的下一个Client发送包的SN序号,具体的ACK值如下图左边的正常传输部分所示。
传输层知识1TCP协议的报文格式(四)确认序号(AcknowledgmentNumber)在上图的左边部分,Server第1个ACK包的ACK
Number值为1001,是通过Client第1个包的SN+包净荷=1+1000计算得到,表示期望第2个Client包的SN序号为1001;Server第2个ACK包的ACK
Number值为2001,为Client第2个包的SN+包净荷=2001,表示期望第3个Server包的SN为2001,以此类推。如果发生错误,假设Server在处理Client的第二个发送包异常,Server仍然回复一个ACK
Number值为1001的确认包,则Client的第二个数据包需要重复发送,具体的ACK值如上图右边的正常传输部分所示。只有控制标志的ACK标志为1时,
您可能关注的文档
- 储存长度运算符(课件)讲解.pptx
- 触电防护讲解.pptx
- 触电伤害 讲解.pptx
- 触电形式 讲解.pptx
- 触电预防措施 讲解.pptx
- 触电原因 讲解.pptx
- 触摸模块 -讲解.pptx
- 传统点火系统讲解.pptx
- 船舶检验专业-办学条件 (1)讲解.pptx
- 船舶检验专业自我诊改总结讲解.pptx
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)