运输层的作用
运输(shū)层向它上面的(de)应用层提供通信服务(提供端到(dào)端,进程到进程的(de)可靠通信),为运行在不同(tóng) host 上的进程提供逻辑(jí)通信,向高(gāo)层(céng)用(yòng)户屏蔽通信(xìn)子网的细节
2.UDP 和 TCP 的(de)特点(diǎn),及使用(yòng)它们(men)的应用程序,熟知端(duān)口号
UDP 和 TCP 的特点:
UDP
支持单播、多播(bō)、广播
无连接,不可靠
可以任何速率发送数(shù)据
TCP
仅单播,不支持(chí)多(duō)播(bō)、广播
面向连(lián)接,可靠(kào)按序
流量控制(发送速率不超过接收方的接收能力)
拥塞控制(网(wǎng)络过载时限制发送(sòng)方的发送速率)
及使用它们的(de)应用程序:
熟(shú)知端口(kǒu)号(hào):
3.UDP:首部格式,检验和(hé)
首(shǒu)部格式:
检验和:
发送端:
先(xiān)设(shè)置检验(yàn)和字(zì)段为 0
每两个字节为一组,进位累加求(qiú)和,多出的加到最后一位
把求和结果求反,求反(fǎn)即转换成(chéng) 2 进制后,0 变 1,1 变 0
把计(jì)算结果(guǒ)放入(rù)检验和字段
接收端
把(bǎ)每 2 个字节为一(yī)组,进位累加求和(hé)
把求和结果求反:为 0 即未检验出差错(cuò)(不排(pái)除没(méi)检测出(chū)来(lái)的错(cuò)误)
4.TCP 的首部(bù)格式(端口号,序号,确认号,窗(chuāng)口,首部长度,检验和,6 个标志(zhì)位(wèi))
端口号:各占 2 个字节
当访问百度时,源(yuán)端口使用客户端系统随机(jī)分配的端口号,目的(de)端口是使用熟知端口号 80
序号:占(zhàn) 4 个字节(jiē)。序(xù)号范围是【0~2^32-1】,循环使用
确认号:占 4 个字节(jiē),是期望收到对方下(xià)一个报文段的(de)第一个数据字节的序号(hào)。若确(què)认号为 N,则代表:序号(hào) N-1 为止(zhǐ)的所(suǒ)有数据(jù)都已正确收到(dào)
窗(chuāng)口(kǒu):占 2 个字(zì)节。窗口(kǒu)值是【0~2^16-1】之间的(de)整(zhěng)数。窗口指的是发送本报文段的(de)一方的(de)接收窗口。窗口值告诉对方:从本报文段首部中(zhōng)的确认(rèn)号算起,接收方目前允许(xǔ)对方发送的数据量。窗口值作为接收方让发送方(fāng)设置其发送窗口的依据。
窗口字段明确指出了现在允许对方发送的数据量。窗口值(zhí)经常在动态(tài)变化着
首部长度:占 4 位,也叫(jiào)数据偏移,最小 20,最大(dà) 60
检验和:占(zhàn) 2 位,检验和字段检验(yàn)的范围(wéi)包括首部和数(shù)据(jù)两部分
6 个标志位(wèi):
紧急 URG:当 URG=1 时,表(biǎo)明紧急(jí)指针字段(duàn)有效。紧(jǐn)急(jí)指针:指出在(zài)本报文段中紧急(jí)数据共有(yǒu)多少个(gè)字节(紧急数据放在本报文段数(shù)据的最前面)
确(què)认 ACK:只有当(dāng) ACK=1 时确认号字段才有效(xiào)
推送 PSH:接收(shōu)方(fāng) TCP 收到 PSH=1 的报文段,就尽(jìn)快地交付接收(shōu)应用进程,而不再等到整(zhěng)个缓(huǎn)存都填满了后再向上交付
复位 RST:当(dāng) RST=1 时,表明 TCP 连接中(zhōng)出现严重差错,重新建立运输(shū)连接
同步 SYN:同步 SYN=1 表示这是一个连接请求或(huò)连接(jiē)接受报文
终止 FIN:FIN=1 表明发送端的数据已发(fā)送完毕,并要求释放运(yùn)输连接
5.TCP 的可靠传输:超时重传机制,TCP 流(liú)量(liàng)控制(序号(hào),确认号,确认标志位,窗口,死锁(suǒ)问题(tí)与持续计(jì)时器),发送缓存和接受(shòu)缓(huǎn)存的作用,捎(shāo)带确认与(yǔ)累积确认
超时(shí)重传(chuán)机制:
超时计时器时间 RTO:RTO=RTTs+4*RTTD
测量多个 sampleRTT 求平均值,形成 RTT 的估(gū)计值(zhí) RTTs:
RTTs=(1-α) * RTTS+α * SampleRTT 典(diǎn)型值α=1/8
测量 RTT 的(de)变化值:RTTs 与(yǔ) SampleRTT 的差(chà)值:
RTTd=(1-β) * RTTD+β * |RTTs-SampleRTT| 典型值:β=1/4
TCP 流量控制(序号,确认(rèn)号,确认标志位,窗口,死(sǐ)锁问(wèn)题与持(chí)续计时器) :
序号:发送窗(chuāng)口里面(miàn)的序号(hào)表示允许发送的(de)序号(hào)
确认号:表明主(zhǔ)机期望收到的下一个序号,而上(shàng)一个序号位置(zhì)的数据已经收到了(le)
确认标志位:
窗口:窗口指的(de)是发送本报文段的一方的接收窗口;发送(sòng)窗口表示(shì):在没有收到 B 的确认的情况下,A 可以连续把窗口内的(de)数据都发送出去。
死锁问题:发送方(fāng)等待接收方通知(zhī)窗口大小,接收方等待发送方发送数据
持续计时器(qì):当发送方(fāng)收到接收方的零(líng)窗口通(tōng)知,启动持续计时器。若持续计时器到期,就发送(sòng)一个零窗口探测(cè)报文段
接收方(fāng)发送的(de)确认(rèn)报文段中:
若窗口(kǒu)仍是零,则重置持(chí)续(xù)计时器
若(ruò)窗口不(bú)是零,则死锁(suǒ)打(dǎ)开
发(fā)送缓存和接受缓(huǎn)存的作(zuò)用:
发送方应用进程把数据发送到 TCP 的发送缓存;发送(sòng)缓存暂时(shí)存放:1 准备发送的数据(jù);2 已发送(sòng)未确(què)定的数据
接(jiē)收方应用进(jìn)程从 TCP 的接收缓(huǎn)存中读(dú)取字节流;接(jiē)收缓存暂时存放:1 已收到但尚未提交(jiāo)的数(shù)据;2 失序(xù)的数(shù)据(jù)
捎带确认(rèn)与(yǔ)累(lèi)积确认(rèn):
累(lèi)积确(què)认:即不必对收到的(de)分组逐个(gè)发送确认,而是对按序到达(dá)的最后一个(gè)分(fèn)组(zǔ)发送确(què)认(rèn),这样(yàng)就(jiù)表示:到这(zhè)个分组位(wèi)置的所(suǒ)有分组都已正确收到了
捎带确认:当一个数据帧(zhēn)到达的时候后,接收方并不是立即发送(sòng)一个单独的控制帧,而是抑制(zhì)一(yī)下(xià)自己(jǐ)并且开始等(děng)待(dài),知道网络层传递(dì)给(gěi)他下一个分组(zǔ),然后,确认信息被附(fù)在往外发送的数据帧中(使用帧头中的 ack 域)。实际上,确认报文搭了(le)下一(yī)个外发数据帧的(de)便(biàn)车。
6.TCP 的拥塞控制:网(wǎng)络拥塞的判断(duàn),传输轮次与(yǔ)拥塞窗口(kǒu)大小的关(guān)系(慢开始与(yǔ)拥塞避免(miǎn),门限 ssthresh,重(chóng)传计时器超时与三个重复 ACK)
网络拥塞的判断:重传定时器超时(shí)
*** 传输轮次与拥(yōng)塞窗口大小的(de)关系(慢开始与拥塞避免,门限(xiàn) ssthresh,重传计时器超(chāo)时与三个重(chóng)复 ACK)***:
慢开始:每经过一个 RTT,cwnd 翻倍
拥塞避免(miǎn):每经过一(yī)个 RTT,cwnd 加一(yī)
慢开始门限 ssthresh:当 cwnd = ssthresh 时由(yóu)指(zhǐ)数增长切换为线性增长;ssthresh=24 时,重传计时器超时,发(fā)送方(fāng)判断为(wéi)网(wǎng)络(luò)拥塞。调整 ssthresh=cwnd/2,拥塞窗口 cwnd=1,执行慢开始
7.TCP 连接:TCP 的(de)套接字,三次握(wò)手建立 TCP 连接(jiē),四次握手(shǒu)释放 TCP 连接
TCP 的套(tào)接字:就(jiù)是(shì)对网络中不(bú)同(tóng)主机上(shàng)的应用进程(chéng)之间进行双(shuāng)向通信的端点的抽象(xiàng)。一个套接字就是网络上(shàng)进程通信的一(yī)端,提供了(le)应(yīng)用层进程(chéng)利用网(wǎng)络协议交换数据的机制
三次握手建立 TCP 连接:
刚开(kāi)始客户端(duān) A 和(hé)服(fú)务端 B 都是关闭的
B 的 TCP 服务器进程被动打开,准备(bèi)接受客(kè)户(hù)进程(chéng)的连接(jiē)请求(qiú)
A 主动(dòng)打开(kāi),A 向 B 发(fā)出 SYN 报(bào)文段,选择初始序号,不携带数据。SYN=1,SEQ=X
B 收到(dào) SYN 报文段,发回 ACK 报文段,选择初始(shǐ)序(xù)号(hào),分(fèn)配缓存,不携带数据。SYN=1.ACK=1.SEQ=Y,ack=x+1
A 向 B 发送 SYN+ACK 报(bào)文段,可携带数据。通知上层应用进程:TCP 连(lián)接已(yǐ)建立。
B 通知其上层应用进程 TCP 连接已经建立。
四(sì)次握手释放 TCP 连接:
客户端(duān) A 主(zhǔ)动关闭。A 向 B 发出 FIN 报文段,并停止发送是数据。FIN=1,seq=u
B 通知应用进程。B 收到 FIN 报文段,回复 ACK 报文段。TCP 连接(jiē)处于半关(guān)闭状态(tài):B 仍可发送数(shù)据(jù)。ACK=1,seq=v,ack=u+1
B 被动关闭。若 B 已经没有要向 A 发送的数据,向 A 发送 FIN 报(bào)文段。FIN=1,ACK=1,seq=w,ack=u+1
A 收到 FIN 报文段后,必须发出 ACK 报文(wén)段。ACK=1,seq=u+1,ack=w+1
B 收(shōu)到 ACK 报文段后(hòu),TCP 连接关闭。
客服QQ1:63355785 客服QQ2:61303373 客(kè)服QQ3:67399965 客(kè)服QQ4:2656068273 产品分类地(dì)图(tú)
版权(quán)所有:保定市禾(hé)邦电子有限公司 保定市乐鱼手机入口和禾邦电子有限公司营业执照

关键字:保定电子元器件 保定电子元(yuán)件 电子元器(qì)件 电子元件