【计算机网络入门】初学计算机网络(十二)

打印 上一主题 下一主题

主题 1008|帖子 1008|积分 3024

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目录
1. 进程、端口号
1.1 套接字(socket)
1.2. 端口号的分类
3. 传输层作用 
4. UDP协议、UDP数据报、UDP首部
4.1 UDP不对控制
 4.2 实际上UDP的查验
5. TCP协议、TCP数据报、TCP首部
 5.1 TCP建立毗连流程
5.2 TCP数据报格式
6.TCP三次握手四次挥手(重要)
6.1 三次握手的数据报标志位的变化
6.2 三次握手耗时
6.3 四次挥手数据报标志位的变化
6.4 四次挥手耗时
7. TCP流量控制


1. 进程、端口号

①差别主机的端口号相互独立。
②差别协议的端口号相互独立。
③两个进程通信之前须要表明:利用的协议、本进程绑定的端口号、目标IP、端口号。

1.1 套接字(socket)

        是C/C++中的数据结构。IP + 端口号;利用套接字之前要确认是什么协议;例如TCP套接字和UDP套接字。本质上一定程度简化,不消每一次选择协媾和端口。套接字可以指明网络中某主机的某进程。

1.2. 端口号的分类

端口号由16个bit构成,表现的范围是(0-65536);服务器是被动通信的一方,客户端是主动通信的一方。



3. 传输层作用 

①实现端对端的数据传输。
②差别进程可以利用同一个协议(复用);同一个协议会把数据发送到差别进程(分用)。
③不对检测。TCP检测错误之后抛弃数据,通知发送方重传;UDP检测错误之后抛弃数据,不通知重传。
④向应用层提供了两种端到端的传输服务TCP\UDP。
TCP:是面向毗连的可靠的服务,保证数据完整,但是开销大,实时性差。
UDP:无毗连不可靠的服务,不保证数据完整,速度快、开销小。



4. UDP协议、UDP数据报、UDP首部

①UDP首部很小只有8Byte。
②UDP每次传输的是一个完整的报文。
③UDP无毗连、不可靠(可靠性交给应用层处置处罚)、不支持拥塞处置处罚。
④UDP支持一对一(单播)、一对多(广播或者多播)。

网络层的IP数据报最多65515,以是UDP长度不能大于65515 

8字节构成:
①2字节源端口号。
②2字节目标端口号。
③2字节报文总长度。         
④2字节UDP校验和。


4.1 UDP不对控制

校验和生成
假如数据位32位,校验和16位,那么把数据位分成两部门举行相加之后再取反就得到校验和。

假如数据到达了48bit,就分成三分16bit依次相加,假如最高位超了直接加到最低位,加完之后取反得到校验位。验证校验位 +数据位 是否等于全1。

查验错误
B节点收到数据之后,直接用相同的方法举行查验错误。
 4.2 实际上UDP的查验

计算查验和之前加上伪首部,计算完毕之后,去掉伪首部交给网络层封装成IP数据报;
网络层吸收到了UDP数据报之后直接给传输层,传输层添加伪首部举行UDP查验;若没有错误就把UDP数据报交给目标地址的进程。
5. TCP协议、TCP数据报、TCP首部

①TCP首部支持20-60Byte。
②TCP支持报文主动重装拆分,以是支持长报文。
③TCP面向毗连,可靠传输,支持拥塞处置处罚(会通知发送方减缓发送速率)。
④TCP只支持一对一传输。(因为通信之前传输层须要建立长毗连)

 5.1 TCP建立毗连流程

①三次握手:客户端先握手,建立全双工通道。

②四次挥手:客户端和服务器端都可以先挥手,先挥手就断开单向毗连,再挥手就再断开单向毗连。





5.2 TCP数据报格式


MSS最大段长
①源端口目标端口。
② 序号。负责给TCP数据段举行排序。
③确认号。ack_seq,当ACK标志位为0阐明白认号无效,三次握手中,只有第一次握手确认号无效。
例如下图,当A发送两个报文段给B的时候,B返回了一个报文段可以携带ACK=1,ack_seq=2500,阐明序号2500之前的以是数据全部被吸收。

④数据偏移,表现TCP首部长度。是4B的整数倍,和填充字段共同利用。
 ⑤标志位:URG,PSH,RST,ACK等每个占1bit表现差别意思。


 
⑥告急指针,针对告急数据的序号。
⑦窗口。从ack_seq算起吸收方根发送方反馈自己还能吸收多少数据,字节为单位。        
⑧查验和。和UDP方法划一,就是字节分配差别。
⑨选项。确定MSS,让吸收方预留缓冲区。

6.TCP三次握手四次挥手(重要)

6.1 三次握手的数据报标志位的变化

SYN表现是否是发起或者接受请求。
ACK表现ack_seq字段是否有效,ack_seq表现已经接受到某个序号以及以前的全部数据。
seq表现携带数据的首个字节的序号。其中握手1不能携带数据,但是依旧会消耗一个序号。
握手1的seq是客户端进程对自己数据的起始序号,握手2的seq是服务端进程对自己数据的其实序号。
虽然握手1握手2不携带数据,但是仍然会消耗一个序号。

    握手3此时可以携带数据也可以不携带数据,此时若携带数据会消耗序号,若不携带数据则不消耗序号。



        SYN=1只有握手1或者握手2,此时清除AD,因为只有握手1和握手2的SYN是1,盼望建立毗连,阐明是握手1,那么查看seq,握手1虽然不携带数据,但是依旧会消耗一个序号,握手2的ack一定会在握手1的条件下+1,就是11221,以是选C。
6.2 三次握手耗时

        客户端从握手1开始到发送数据须要1个RTT,也就是说须要一个来回时延。握手3就可以发送数据了。
        服务端从握手1开始到发送数据须要1.5个RTT,也就是须要等待握手3结束之后才能发送数据。


6.3 四次挥手数据报标志位的变化

SYN是握手1,2;ACK是握手1;
FIN代表主动挥手告别。以是只有挥手1和挥手3的FIN为1
挥手1挥手3即便不携带数据也要消耗一个序号。

挥手2可以携带数据,因为此时关闭的只是客户端的到服务端的单向通道;但是挥手4并不能携带任何数据,因为客户端到服务端的单向通道已经关闭。


6.4 四次挥手耗时


7. TCP流量控制

        数据发送方告诉数据吸收方我即将发送数据,请做好准备,数据吸收方回复的时候须要把自己的数据吸收窗口的大小一并发送,这样一来发送方就会根据吸收方数据窗口的大小举行发送数据,发送数据的时候,数据的发送方也会把自己的吸收窗口大小发送给吸收方,因为TCP是全双工,可以双向传递数据,这样一来数据就不会有溢出的情况。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表