nullnull林楠电子邮件:lynn_linnan@yahoo.com.cn
办公电话:0371-63887293
办公室:408
运输层第七讲运输层:两端点之间进程与进程的通信进程主机进程主机结点结点结点结点结点数据链路层网络层运输层运输层:实现进程与进程之间的通信。
网络层:实现主机与主机之间的通信。
数据链路层:实现结点与结点之间的通信。运输层:两端点之间进程与进程的通信运输层的服务数据传输
的使用者数据传输
的提供者运输层的服务通过软件实现通过软件+硬件实现运输层的服务运输层的服务:
为运行在不同终端主机上的
应用进程提供逻辑连接。
应用进程之间的通信
又称为端到端的通信。
传输协议运行在终端系统上:
发送端:
分离应用层消息为若干数据段
segments,并为每个数据段
封装上头部信息,然后传送给
网络层。
接收端:
接收数据段并重新组装形成应
用层消息,发送到应用层。运输层的服务运输层的服务运输层:进程之间的逻辑连接
依赖于网络层服务
网络层: 主机之间的逻辑连接
举例: 两个班互相写信
信件 =应用层数据
写信的同学 =进程
教室(班级) =主机
运输层协议 = 两个班长活动在终端
网络层协议 = 邮局提供的传输服务运输层的服务运输层的服务:TCP与UDPTCP 传输控制协议
Transmission control protocol
面向连接,可靠,按序传输数据;
对数据有校验和重发。
拥塞控制、流量控制
差错控制、连接设置
UDP 用户数据报协议
User datagram protocol
无连接,不可靠,无序传输数据;
对数据无校验和重发。
通信速率高,可靠性需要应用
程序自己来控制。运输层的服务:TCP与UDPnull进程客户机进程客户机复用
(1个运输层协议)分用IPIP可选一个运输层协议: TCP 或 UDP运输层复用/分用null进程进程客户机服务器端口号:80端口号:52000运输层 运输层 服务器上的端口号,使用熟知端口号。
(1~255用于Internet服务,256~1023用于UNIX服务)
客户机上的端口号,是由运输层随机选择的(大于49152-65535)复用/分用null进程202.197.189.1332121 IP地址用于选择主机端口号用于选择应用层不同进程数据 主机复用/分用null202.197.187.133 21 202.197.187.133 21主机的IP地址套接字地址进程的端口号在建立通信连接的每一端,进程到进程的传输之间要有两个标志:
IP地址和端口号,他们的结合称为套接字地址 socket address。
客户机套接字地址定义了一个唯一的客户进程;
服务器套接字地址定义了一个唯一的服务器进程。复用/分用 Sockets
大部分应用程序(房子)
包括多对进程(房间),
进程是通过Soket(房门)
发送与接收信息的。 Sockets
大部分应用程序(房子)
包括多对进程(房间),
进程是通过Soket(房门)
发送与接收信息的。发送进程把信息推向它的门-socket ,
发送进程依赖于通信基础设施。
接收进程通过它的门-socket接收消息。Review:Socket 套接字(房门)复用/分用:无连接服务 UDP客户机
IP:B客户机
IP: A服务器
IP: C一个UDP的socket由两个标识确认: (目的主机的IP地址 + 进程端口号)
当主机接收UDP数据段时:
检测UDP数据段中目的端口号
转发数据段到相应的 socket,即到相应的进程。
不同发送主机的数据段可以发给接收主机上相同的 socket复用/分用:无连接服务 UDP6665577559157复用/分用:面向连接服务 TCP客户机
IP:B客户机
IP: A服务器
IP: C一个TCP的socket由四个标识确认:
(源主机IP地址 + 源端口号 + 目的主机IP地址 + 目的端口号)
一个主机上可能运行多个进程,每个进程为不同连接创建不同的socket
不同发送主机的数据段发给接收主机上的不同 socket。复用/分用:面向连接服务 TCP591578080805577555968无连接不可靠传输:UDPUDP 是一种无连接的,不可靠的并且缺乏流量控制和差错控制的协议。
UDP除了提供进程到进程的通信代替主机到主机的通信之外,几乎没有对IP服务增加任何新服务,另外UDP提供了很有限的差错校验。
UDP使用端口号对来自应用层的数据实现复用与分用。UDP常用于多媒体流的应用:
允许数据丢失; 对传输速度
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
敏感
其他 UDP 应用
DNS; SNMP
在UDP上实现可靠传输:
在应用层添加可靠服务; 在应用层建立错误恢复机制。无连接不可靠传输:UDP面向连接可靠传输:TCP面向连接:在数据传输前,在收发双方先建立连接状态,当数据传输完毕,
撤消连接状态(销毁收发双方的TCP缓冲区)。
可靠传输:TCP使用确认机制来检查数据是否安全准确的到达,提供按序的
字节流传输;
全双工数据传输:数据同时在同一连接中双向传输。
流量控制:发送端的发送速度不能超过接收端的处理速度。
拥塞控制:太多发送主机快速发送大量数据到网络中时引起拥塞。面向连接可靠传输:TCP面向连接可靠传输:TCP发送端与接收端传输数据段之
前建立TCP三次握手连接过程:
1)发送主机发送SYN控制数据段到接收主机;
确定发送初始序号 seq=x
2) 接收主机接收到 SYN控制数据段后返回SYN ACK确认数据段;
确定缓冲区大小
确定接收初始序号
seq=y ACK=x+1
3) 发送主机接收到SYN ACK确认数据段后返回一SYN ACK确认数据段(可能包含数据)
seq=x+1 ACK=y+1
面向连接可靠传输:TCP面向连接可靠传输:TCP
可能。
如果第二个确认报文丢失。
B认为连接建立,开始发送数据;
A认为连接尚未建立,继续等待
连接确认,忽略其他B发送的
数据包;
B未收到确认,再重发;
死锁产生考验真题精选:
假定TCP采用两次握手代替
三次握手建立连接,也就是
说省去第三个报文,是否可
能发生死锁现象?
面向连接可靠传输:TCPABTCP 连接管理:撤消连接(四步)开始
终止连接连接终止TCP 连接管理:撤消连接(四步)半关闭
状态面向连接可靠传输:TCP第七讲 运输层
运输层的服务
复用/分用
运输层的协议
无连接不可靠传输:UDP
面向连接可靠传输:TCP
TCP的可靠传输
差错控制
流量控制
拥塞控制
定时器管理
第七讲 运输层nullTCP:差错控制TCP是可靠的运输层协议。
TCP传送数据流的过程是有序的、无差错的、没有任何部分丢失或重复。
TCP的差错控制检测包括:
被破坏的数据段、丢失的数据段、无序的数据段、重复的数据段。
TCP使用三种简单的工具:校验和、确认、超时。
每个数据段包括:校验和、确认;用来校验被破坏的数据。
如果数据段被破坏,接收主机将丢弃这个数据段。
TCP没有否定确认,只确认已经完好到达并已接收的数据段。
发送主机TCP为每一个发送的数据段启动一个超时计数器,当计数器结束时没有收到确认,则该数据段被破坏或丢失,同时重发该数据段。
第七讲 运输层
运输层的服务
复用/分用
运输层的协议
无连接不可靠传输:UDP
面向连接可靠传输:TCP
TCP的可靠传输
差错控制
流量控制
拥塞控制
定时器管理
第七讲 运输层nullTCP:流量控制 Flow Control流量控制 : 在收到来自接收端的确认之前,发送端能发送的数据量。
发送端不可发送的太多太快以至于使得接收端的缓存溢出。
为了实现流量控制,TCP使用一种滑动窗口协议。
收发双方主机为每个TCP连接建立一个窗口,该窗口建立在应用程序发送并且准备发送的数据缓冲区上。建立连接的双方都将分配一个缓冲区作为接收数据的存储空间,并通知对方自己窗口的大小。
窗口区间是缓冲区的一部分,包含了一台主机在等待另一台主机的确认期间所能发送的字节数据。
滑动窗口随着数据发送和确认接收,在整个缓冲区内滑动。
滑动窗口协议:sliding windownull发送方缓冲区已占用的缓冲区部分为空,
有进程填充可被立即发送已发送,
但未确认已发送,
并得到确认,
已回收下一个要发送的字节TCP:流量控制 Flow Controlnull接收方窗口 receiver window
接收方缓冲区大小:N
已经被占用了M个存储单元;
那么最多只能再接收 N-M 个字节。
接收方窗口 = N-M
为空,
等待从网络中接收更多字节缓冲区中已占用部分已处理
并进行回收接收方窗口 = N-M = 13 – 6 = 7TCP:流量控制 Flow Controlnull发送方窗口 sender window = 接收方窗口
发送方最多再发送 4 个字节,因为它已经发送了 3 个。
发送方窗口大小=接收方窗口大小下一个将要发送的字节TCP:流量控制 Flow Control发送端未必发送整个窗口大小的数据null滑动发送方窗口发送前发送后发送窗口大小发送窗口大小发送方又发送了两个字节 203 204 ,并从接收方收到202的确认;
此时接收窗口没有变化,发送方开始滑动它的窗口。TCP:流量控制 Flow Controlnull扩展发送方窗口如果接收方处理数据的速度 大于 它接收数据的速度;
接收方窗口的大小就会扩展,(即接收缓冲区有更多的空闲存储单元)。
并将把窗口大小转给发送方,引起发送方窗口的增大。
例如:接收方确认接收到了204,同时将窗口增到10;
缓冲区中
已占用部分已处理,并进行回收接收方窗口 = M-N = 13 – 3 = 10202203204发送方窗口大小扩展到 10TCP:流量控制 Flow Controlnull收缩发送方窗口如果接收方处理数据的速度 小于 它接收数据的速度;
接收方窗口的大小就会减小,(即接收缓冲区有更多的已占用存储单元)
并将把窗口大小转给发送方,引起发送方窗口的减小。
例如:接收方确认接收到了209,同时将窗口缩小到6;
缓冲区中已占用部分已处理,并进行回收接收方窗口 = M-N = 13 – 7 = 6203204发送方窗口大小减小到 6205206207208209TCP:流量控制 Flow Controlnull零窗口通告
发送方收到一个零窗口通告时,必须停止发送,直到接收方重新通告一个正的窗口大小。
但有两种情况可以除外:
发送紧急数据:紧急数据是直接交给上层应用进程直接处理的,不需要缓存。例如:允许用户终止对方机器上的进程;
死锁现象发生时:当收发双方都处于等待状态的时候,发送方可以发送一个字节的数据段通知对方,希望对方重新发送一个窗口通告,以防止窗口
公告
职业卫生公告栏下载公告怎么写公司公告范文安全风险承诺公告制度公告栏模版
丢失而导致的死锁。TCP:流量控制 Flow Control第七讲 运输层
运输层的服务
复用/分用
运输层的协议
无连接不可靠传输:UDP
面向连接可靠传输:TCP
TCP的可靠传输
差错控制
流量控制
拥塞控制
定时器管理
第七讲 运输层TCP:拥塞控制拥塞原理:
太多发送主机快速发送大量数据到网络中时,容易引起网络拥塞。
(类似交通堵塞)
与流量控制不同(虽然收发双方发送接收数据速度都很快,但是由于数据经过网络的带宽不等,所以不能无限制的发送!)
表现为:
数据包丢失(路由器的缓冲满了)
很长的延迟(在路由器中缓冲排队)TCP:拥塞控制TCP:拥塞控制网络拥塞造成数据包丢失,重发机制进一步加剧了拥塞。
TCP的拥塞控制
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
将由接收方的容量和网络的容量所产生的拥塞问题分别处理,除了已经定义的接收窗口外,还定义了拥塞窗口。
拥塞窗口cwnd (congestion window) 随着网络的拥塞情况动态变化。
拥塞窗口的动态调整:一旦发现数据包丢失,则降低重发数据包速度。
接收方承认的接收窗口表示接收缓冲区的容量;
拥塞窗口表示网络的容量;
发送窗口大小 = Min ( 接收窗口,拥塞窗口 ) TCP:拥塞控制TCP:拥塞控制拥塞窗口大小的调整,随着网络的拥塞动态变化。。。。。。
1、开始发送报文段时,执行慢开始算法
设置拥塞窗口 cwnd = 1(即设为一最大报文段 MSS)
2、在定时器超时前得到确认信息,认为无拥塞发生
拥塞窗口增加一倍(每经过一个往返时间 RTT )
在定时器超时前得到确认信息,认为无拥塞发生
拥塞窗口增加一倍(每经过一个往返时间 RTT )
……
直到数据传输超时或者等于接收窗口的大小为止。
当拥塞窗口的大小为N个数据包时,如果发送的N个数据包都得到了确认,那么此时拥塞窗口的大小即为N个数据包对应的字节数。TCP:拥塞控制TCP:拥塞控制拥塞窗口大小的调整,随着网络的拥塞动态变化。。。。。。
3、在定时器超时后没有得到确认信息,认为网络拥塞发生
立刻把拥塞窗口恢复到最小值(即设为一最大报文段 MSS)
设置慢开始门限 ssthresh 为当前拥塞窗口的1/2 (但不能小于2)
4、重新开始探测过程
执行慢开始算法,直到达到慢开始门限 。
5、当拥塞窗口> 慢开始门限时,改用拥塞避免算法。
即:在定时器超时前得到确认信息,认为无拥塞发生
拥塞窗口+ 1数据段(每经过一个往返时间 RTT )
……
直到数据传输超时或者等于接收窗口的大小为止。
TCP:拥塞控制TCP:拥塞控制例如:原拥塞窗口 64KB ,但是发生丢包了,这时首先把慢开始门限设置为当前窗口的一半32KB,拥塞窗口的大小为最大的数据段长度为 1024 ( 1K ),重新发送 。当到40K的时候发生拥塞,这时再把慢开始门限设置为当前窗口的一半20KB,拥塞窗口的大小为最大的数据段长度为 1024 ( 1K ) ,重新发送。TCP:拥塞控制