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

关键字:保定(dìng)电子元(yuán)器件 保定电(diàn)子(zǐ)元件(jiàn) 电子元器件 电子元件