毕设源码网站,中交通力建设股份有限公司网站,网站建设策略营销,做网站怎么给客户打电话一、概述 物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的的问题#xff0c;实现了主机到主机的通信 但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程 如何为运行在不同主机上的应用进程提供直接的通信服务时运输层的任务…一、概述 物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的的问题实现了主机到主机的通信 但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程 如何为运行在不同主机上的应用进程提供直接的通信服务时运输层的任务运输层协议又称端到端协议 1.1端口号 为了使运行不同操作系统的计算机的应用进程之间能进行网络通信必须使用统一的方法对TCP/IP体系的应用进程进行标识即端口号。 逻辑端口的概念端口一个整数值16位0-65535 网络上中进程工作方式C/S 对应的端口号码的分配也分为两大类 服务类静态的预先指定的 1-1013默认系统熟知的服务 1023-45191需要申请注册的服务 QQ4000,8000都是它所使用的端口 客户类随机的由本地操作系统自己管控 端口相当于进程在网络中的地址 IPPORT(端口号) 构成了网络中唯一的通信端点我们称之为端到端的通信 Socket Socket Protocol 1.2复用与分用 发送方的复用 发送方的某些应用进程所发送的不同应用报文在运输层使用UDP协议进行封装这是UDP复用若用TCP封装则称TCP复用运输层使用端口号区分不同进程不管使用何种协议封装的报文在网络层都需要使用IP协议封装成IP数据报这是IP复用数据报中协议字段的值用来表名封装的是何种协议数据单元 接收方的分用 根据协议字段的值将IP数据报封装的协议数据单元上交运输层的过程叫IP分用同理UDP根据端口号将数据交给应用进程叫做UDP分用TCP根据端口号将数据交给应用进程叫做TCP分用 1.3运输层引入的协议 1TCP协议负责完成端到端的可靠传输 2UDP协议负责完成端到端的数据传输 用户数据报协议UDP UDP是无连接的随时可向目的主机发送报文支持单播、多播和广播 UDP收到应用层报文后直接为报文添加UDP首部就进行发送即面向应用报文 UDP数据报首部仅8字节 传输控制协议TCP TCP时面向连接的。发送数据前需要三报文握手建立连接数据传输结束后需要四报文挥手释放连接 仅支持单播 TCP是面向字节流的。其将应用进程交付下来的数据块仅仅看作是一连串的字节流TCP将这些字节流编号并存储在缓冲中接收方一边接收数据一边将缓冲中的数据交给应用进程。 接收方收到的字节流必须和发送方收到的字节流完全一致 不会出现传输差错(误码、丢失、乱序、重复) TCP报文段首部最小20字节最大60字节 1.4TCP协议流量控制 1滑动窗口 发送窗口 接收窗口 2超时计时器 3流量控制方法 接收端控制发送端 2超时计时器 3流量控制方法接收端控制发送端 4流量控制的实现过程0窗口 5TCP协议效率管理糊涂窗口 流量控制 一般来说我们希望数据传输能快一些但如果发送方把数据发送得过快接收方就可能来不及接收这会造成数据的丢失 流量控制就是让发送方的发送速率不要太快要让接收方来得及接收 利用滑动窗口实现流量控制 发送方和接收方窗口保持一致发送方窗口随着接收方窗口变化而变化(通过确认报文告知发送方)发送方发送完窗口内数据后需要等到确认报文才会滑动窗口并继续发送若窗口内的某个值很久没有收到回答报文则超时重传报文 若接收方窗口调为0后一段时间之后又调为200此时向发送方传递确认报文可此时报文丢失则会造成发送方窗口始终为0接收方以为发送方收到了确认报文而开始等待数据造成死锁如何解决 当发送方窗口大小为0时其隔一段时间就会发送一个1字节大小的零窗口探测报文看看此时接收窗口大小是否进行调整 零窗口探测报文也有超时重传机制 1.5TCP的拥塞控制 1拥塞控制的概念拥塞就是拥堵了网络拥堵了拥堵的原因数据包太多了导致网络吞吐量下降网络时延增加网络时延增加又进而加剧了网络数据包增多 2拥塞控制的手段方法 1)核心方法减少数据包数量 2具体实现就根据不同情况采用不同方法来减少数据包数量 3拥塞的主要表现就是时延的增加为此就围绕时延增加来进行数据包数量的调整 4数据包投放数量是由各主机的发送窗口大小决定的 5TCP又引入一个拥塞窗口的概念拥塞发生时应该控制发送窗口的数量 结论发送窗口的大小min(拥塞窗口接收窗口) 6拥塞窗口拥塞发生时能够发送数据包的个数 7拥塞控制算法慢开始 拥塞避免 快重传 快恢复 1慢开始设置门限值门限值内试探着向网络投入数据包避免拥塞 2拥塞避免拥塞发生时能够发送数据包的个数 3快重传当数据包未按序到达导致重复确认增多则立即重传该数据包门限降为重复确认时拥塞窗口的一半拥塞窗口同时调小 4快恢复发生超时时立即急速的减少投入网络的数据包 在某段时间若对网络中某一资源的需求超过了该资源所能提供的可用部分网络性能就要变坏这种情况叫做拥塞 若出现拥塞而不进行控制整个网络的吞吐量将随输入负荷的增大而下降 1.6超时重传时间(RTO)选择 正常情况下超时重传时间应该设为略大于往返时间。但是由于各区域的速率可能不一致因此将超时重传时间设置为一个固定值是行不通的 往返时间测量问题
针对出现超时重传时无法测准往返时间RTT的问题有以下解决方法 在计算加权平均往返时间RTTs时只要报文段重传了就不采用其往返时间TT样本。也就是出现重传时不重新计算RTTs,进而超时重传时间RTO也不会重新计算。 此方法的漏洞如下如果报文段时延突然增大很多并且之后很长一段时间都会保持这种时延。因此在原来得出的重传时间内不会收到确认报文段于是重传造成死锁 修正方法报文段每重传一次就把超时重传时间RTO增大一些典型的做法是将RTO的值取为旧RTO的2倍 1.7可靠传输 可靠性保障可以放在体系结构中的任何一层数据链路层网络层实现但现代网络系统面向的是主机独立自主的计算力系统可以将可靠性保障交由主机来完成进而减轻通信子网的负担使得通信子网专注于数据包的高效传输 1.停止等待协议ARQ自动请求重传协议
A给B发送数据B需要给一个确认
否认应答A再发 2.后退N帧重传Go Back N ARQ接收窗口固定唯一而TCP接收窗口不确定
(1)发送窗口没有得到确认的情况下发送端可以连续发送分组的个数
(2)接收窗口接收数据的个数以及包含能接受数据的序号 (3)工作协议
(4)窗口大小与序号关系 3.选择重传协议
目的提高发送速率不在采用发送一个数据帧就停下来等待确认的模式而是可以连续发送多个数据帧后才停下来等待的模式
接收端引入一个接收窗口的概念即应当接收的数据帧及数据帧序号这类协议接收窗口大小为1
其中连续发送多少个数据帧的个数称为 发送窗口
1发送窗口
2接收窗口
3工作过程
4窗口大小与序号关系
1.8运输连接管理 TCP的运输连接管理就是使运输连接的建立和释放都能正常地进行 SYN为1的报文段不能携带数据但会消耗一个序列号seqACK1代表这是普通确认报文段ackx1表示这是对报文段序列号seqx的确认 客户端发起关闭请求一去一回后进入半关闭状态【客户端不再发送数据服务端可能还会发】服务器将自己剩余的数据发送完后也发送一个关闭请求接着客户端给予回应后服务器关闭客户机则要等到一段时间后完全关闭(防止发给服务器的确认报文丢失) 1.9首部格式 源端口占16比特写入源端口号用来标识发送该TCP报文段的应用进程 目的端口占16比特写入目的端口号用来标识接收该TCP报文段的应用进程 序号占32比特取值范围[ 0 , − 1 ] 序号增加到最后一个后下一个序号就又回到0。作用是指出本TCP报文段数据载荷的第一个字节的序号确认标志位ACK取值为1时确认号字段才有效为0时确认号字段无效 确认号占32比特取值范围 [ 0 , − 1 ],序号增加到最后一个后下一个序号就又回到0。可理解为若确认号n则表明到序号n-1为止的所有数据都已正确接收期望接收序号为n的数据 数据偏移占4比特并以4字节为单位 用来指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处。这个字段实际 上是指出TCP报文段的首部长度 首部固定长度为20字节因此数据偏移字段的最小值 保留字段占6比特保留为今后使用但是目前应置为0 窗口占16比特以字节为单位。指出发送本报文段一方的接收窗口 窗口值作为接收方让发送方设置其发送窗口的依据这是以接收方的接收能力来控制发送方的发送能力称为流量控制 检验和占16比特检测范围包括TCP报文段的首部和数据载荷两部分 在计算校验和时要在TCP报文段的前面加上12字节的伪首部 同步标志位SYN在TCP连接建立时用来同步序号 终止标志位FIN用来释放TCP连接 紧急标志位URG取值为1时紧急指针字段有效取值为0时紧急指针字段无效。 紧急指针占16比特以字节为单位用来指明紧急数据的长度 选项增加选项可以增加TCP的功能 最大报文段长度MSS选项TCP报文段数据载荷部分的最大长度窗口扩大选项为了扩大窗口(提高吞吐率)时间戳选项 用来计算往返时间RTT用于处理序号超范围的情况又称为防止序号绕回PAWS选择确认选项实现选择确认功能 填充由于选项长度可变因此使用填充来保证报文段首部能被4整除