zoukankan      html  css  js  c++  java
  • 计算机网络---传输层

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

    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:自动重传请求)

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

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

  • 相关阅读:
    深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-softmax多分类-06
    深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-逻辑回归与交叉熵概述-05
    深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-多层感知器(神经网络)与激活函数概述-04
    深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-梯度下降算法概述-03
    深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-线性回归tf.keras概述-02
    深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-Tensorflow2.2-cpu/gpu环境安装-01
    深度学习-线性回归基础-02
    艾宾浩斯复习
    maven中设置jdk默认编译版本为1.8
    maven 编译命令
  • 原文地址:https://www.cnblogs.com/1220x/p/11757625.html
Copyright © 2011-2022 走看看