zoukankan      html  css  js  c++  java
  • 计算机网络自顶向下第三章传输层

    传输层主要的协议有TCP和UDP

    传输层协议主要为主机内部程序提供传输服务,而网络层协议是为两台主机提供传输服务

    UDP不可靠无连接的服务(不能保证一个进程所发送的数据能够完整无缺的(全部)到达目的进程)

    TCP可靠面向连接的服务

    IP尽力而为的交付服务也是不可靠服务

    多路复用指在运输层封装套接字绑定的端口信息,多路分解则相反,分解收到的数据报,得到对应套接字绑定的端口。

    多路复用在源主机从不同套接字中收集数据库,为每个数据块封装首部信息,从而生成报文段,并将报文段传递到网络层

    多路复用的要求

    1套接字有唯一标识符

    2每个报文段有特殊字段来指示该报文段所要交付到的套接字(特殊字段应该就是指对应的源端口号)

    端口号从0-65535,0-1024是系统内部使用的,如80端口443端口都是有特殊用途的。最好不要使用

    多路分解将运输层报文段中的数据交付到正确的套接字的工作

     UDP只是做了运输协议能够做的最少的工作。除了复用/分解功能及少量的差错检测外,几乎没有对IP添加别的东西。

    UDP相较于TCP的优点

    1关于何时,发送什么数据的应用层控制更为精细(因为没做什么工作,就交付到下层服务了,所以花的时间少,控制就更精细)

    2无需建立连接,没有建立时延

    3无连接状态

    4分组首部开销小 TCP20个首部字节,UDP8个首部字节

    如果要让UDP实现可靠数据传输,需要程序自身建立可靠性机制。

    差错检验

    接收方反馈 肯定确认ACK,否定确认NAK

    重传

    回退N步协议(GBN)

    如果发现分组有失序,把之后的分组都丢弃,让发送方重发

    选择重传

  • 相关阅读:
    Linux下nginx 的常用命令
    linux下nginx常用命令
    docker logs 命令使用
    docker pause 命令使用
    容器到底是个啥?(附Docker学习资源汇总)
    Docker镜像(image)详解
    Docker常用命令
    Docker常用命令大全
    NEW SECRET “???” ACHIEVEMENT AND CARD BACK FROM BARRENS – MYSTERIES OF THE PHOENIX – FULL SOLUTION INSIDE!
    凤凰之谜卡背 new card back "secrets of the phoenix"
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/6744721.html
Copyright © 2011-2022 走看看