计算机网络---传输层

传输层----管理端到端的通信连接

1、端口

使用端口(Port)来标记不同的网络进程

端口使用16位比特位表示(0~65535)

常用端口:

ftp----21    http---80     https---443    dns---53    telnet---23

2、各种协议

应用层:                 HTTP  FTP  SMTP   POP3  ...

传输层:                             TCP    UDP

网路层:                                     IP

网络接口层:                   Ethernet   PPP   ...

3、UDP协议详解

UDP:(User Datagram Protocol 用户数据报协议);

UDP是一个简单协议;

数据报:应用层所传输过来的完整的数据,UDP协议不会对其进行合并、拆分,不做任何处理

UDP协议的长度由业务层传输的数据的长度决定

                                                              图:数据链路层数据帧的格式

3.1  UDP数据报格式

 16位源端口号:源机器使用网络的进程;16位目的端口号:目的机器使用网络的进程;16位UDP长度:UDP数据报的长度,这个长度包括了UDP数据,最小值为8(仅包括UDP首部);16位UDP校验和:用于校验UDP在传输过程中是否发生错误。

3.2 UDP特点

UDP是无连接的协议:进行通信时,不需要提前简历连接;

UDP不能保证可靠的交付数据:“想发就发”,“无法保证数据在网络中是否丢失”;

UDP是面向报文传输的:应用层传输过来的数据报,UDP不会进行任何的处理;

UDP没有拥塞控制:无论网络是否拥塞,UDP都会把报文交付出去;

UDP的首部开销很小:首部--->源端口、目的端口、UDP长度、校验和,总共8个字节;

4、TCP协议详解

TCP:(Transmission Control Protocol):传输控制协议;是计算机网络中非常复杂的一个协议;

3.1  TCP协议的特点:

TCP是面向连接的协议:通信前需要建立连接才可以;

TCP的连接有两端(点对点通信);

TCP提供可靠的传输服务;

TCP协议提供全双工的通信;(全双工-----两端都可以同时的向对方发送数据,或者接受数据)

TCP是面向字节流的协议;(可能会对用户的数进行合并拆分)

3.2 TCP协议的头部 (首部)

(1)序号:0~2^32-1的范围;一个字节一个序号;数据首字节序号(TCP数据报文第一个字节的序号)

(2)确认号:0~2^32-1的范围;一个字节一个序号;期望收到的数据的首字节序号;(期望收到的下一个数据的首字节号)-----  确认号为N,则表示N-1序号的数据都已经收到。

(3)数据偏移:占4位,0~15,单位为32位字,每一个偏移都可以保证4个字节的偏移;数据偏移首部的距离;15*4  --- 最大偏移60个字节,所以TCP首部的长度为 20~60 个字节

(4)TCP标记:占6位,每一位各有不同的意义。 URG    ACK   PSH   RST   SYN   FIN

     URG:Urgent:紧急位,URG=1,表示紧急数据;

     ACK:Acknowledement:确认位,ACK=1,确认号才生效

     PSH:Push:推送为,PSH=1,尽快的把数据交付给应用层

     RST:Reset:重置位,RST=1,重新建立连接

     SYN:Synchronization:同步位,SYN=1 ,表示连接请求报文,同步连接的信息

     FIN:Fininsh:终止位,FIN=1,表示释放连接

(5)窗口:占16位:0~2^16-1;窗口指明允许对方发送的数据量;

(6)紧急指针:紧急数据(URG=1);指定紧急数据在报文的位置

(7)TCP选项:最多40个字节;来支持未来的扩展

4、可靠传输的基本原理

(1)停止等待协议:

                         无差错情况

                                                                出差错的情况

发送方发送的数据丢失,接收方一直没有收到发送方的消息,一定时间之后发送方没有收到确认消息,发送方就会重新发送消息--------超时重传

接收方确认的数据丢失,发送方在一定时间内没有收到确认消息,还是会重新发送数据,---超时重传

                     超时重传

a.  发送的消息在路上丢失了;

b.  确认的消息在路上丢失了;

c.  确认的消息很久才到;

TCP协议的定时器(超时定时器):每发送一个消息,都需要设置一个定时器,用来计算消息是否过期,消息是否正确发送给了对方

停止等待协议是最简单的可靠传输协议;停止等待协议对信道的利用效率不高;

(2)连续ARQ协议:(在停止等待协议的基础上进行改造的)

ARO( Aautomatic  Repeat reQuest:自动重传请求)

既然单个发送和确认效率低,可不可以批量发送和确认呢?

累计确认:只要收到了某一个消息的确认,那么这个消息之前的所有消息都已经收到了。减少了确认报文的数量,提高了效率。

原文地址:https://www.cnblogs.com/1220x/p/11757625.html