• 计算机网络原理精讲第五章--传输层


    5.1 基本概念



    TCP:需要将传输的文件分段传输,建立连接会话,实现可靠传输和流量控制
    UDP:一个数据包就能够完成数据通信,不需要建立连接会话和流量控制,不使用可靠传输

    5.2 传输层的功能

    5.2.1 传输层协议和应用层协议之间的关系

    常见的应用层协议使用的端口
    http=TCP+80
    https=TCP+443
    RDP=TCP+3389
    ftp=TCP+21
    共享文件夹=TCP+445
    SMTP=TCP+25
    POP3=TCP+110
    telnet=TCP+23
    SQL=TCP+1433
    DNS=UDP+53
    SNMP=UDP+161
    RIP=UDP+520

    5.2.2 服务和应用层协议之间关系

    服务使用TCP或UDP的端口侦听客户端请求
    客户端使用IP地址定位服务器,使用目标端口定位服务
    可以在服务器网卡上设置只开放必要的端口,实现网络安全
    端口范围:0-65535,一般分三类端口
    熟知端口:0-1023
    登记端口:1024-49151
    客户端端口 :49152-65535

    5.3 传输层协议UDP和TCP




    5.4 网络安全

    网络安全主要从端口开放和连接策略考虑

    5.5 TCP可靠传输的实现


    这种传输过程的缺点是信道利用率低


    超时重传时间大于2倍的往返(RTT)时间

    现代网络传输的信道使用情况

    TCP滑动窗口技术通过连续ARQ协议保证数据可靠性

    5.6 TCP报文格式(重点)


    上图中,一行代表32个比特,等于4个字节,固定部分一共5行,总共20个字节
    各个字段意义如下

    源端口:记录TCP数据包来源端口
    目标端口:记录TCP数据包目标端口
    序号:Sequence Number,TCP缓存中,发送窗口数据段的第一个字节占整个数据的第几个字节
    确认号:确认号是客户端收到数据段后,返回一个值让服务器接下来发哪个数据段
    数据偏移:TCP报文长度不固定,数据偏移用来说明TCP报文从哪个字节开始是数据部分
    保留:暂时没有用
    URG:urgent,紧急发送二进制标记位,发送时不需要排队
    ACK:acknowledge,确认二进制标记位,值为0或1;如果是0,代表确认号无效,如果是1,确认号有效
    PSH:push,紧急接受二进制标记位,客户端接受时,不需要排队
    RST:reset,重连二进制标记位,TCP会话出现严重错误,必须释放连接,要想正常通讯,重新建立连接
    SYH:synchronization,同步二进制标记位,同步时用到,当客户端和服务器初次建立连接时,需要同步(TCP/IP三次握手)
    FIH:finish,释放连接二进制标记位,当连接结束需要服务端和客户端断开连接时,设置为1发送的标记位
    窗口:window size,又称TCP发送缓存和接收缓存大小,客户端和服务端建立连接时协商窗口大小,使其一致
    检验和:校验首部和数据部分
    紧急指针:当URG为1表示数据包为紧急发送时起作用,紧急指针大小代表数据部分的紧急数据段大小
    选项:用于一些自定义设计(例如指定数据段最大1460字节、是否允许选择性确认),在ipv6格式的数据包中已取消
    填充:当可选部分不够位数时,用来填充的部分
    TCP数据部分:ip数据包最大不超过1500字节,除去ip首部20个字节,剩下的IP数据部分,即传输层中的TCP报文段不超过1480字节,除去TCP首部,得出TCP数据部分最大不超过1460个字节

    5.7 TCP流量控制

    客户端和服务端建立通信之后,在TCP缓存中通过TCP滑动窗口技术滑动发送和滑动接受数据包,客户端接受数据包之后反馈信息给服务端是否有丢包,服务端根据客户端反馈做下一步处理;
    数据发送过程中,窗口大小可以改变,当客户端需要处理缓存数据时,会把窗口大小设置为0,服务端收到信息也会把窗口设置为0,客户端处理完缓存数据之后,重新设置窗口大小,服务端重新发送数据

    5.8 TCP的拥塞控制


    "拥塞避免"并非指完全能够避免拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。"拥塞避免"是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。

    5.9 TCP的运输连接管理



  • 相关阅读:
    ABP+AdminLTE+Bootstrap Table权限管理系统第八节--ABP错误机制及AbpSession相关
    ABP+AdminLTE+Bootstrap Table权限管理系统第九节--AdminLTE引入及模板页和布局和菜单
    ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及几种abp封装的Javascript函数库
    ABP+AdminLTE+Bootstrap Table权限管理系统第六节--abp控制器扩展及json封装以及6种处理时间格式化的方法
    ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI
    ABP+AdminLTE+Bootstrap Table权限管理系统第四节--仓储,服务,服务接口及依赖注入
    ABP+AdminLTE+Bootstrap Table权限管理系统第三节--abp分层体系,实体相关及ABP模块系统
    ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案
    (原创)如何在性能测试中更有效的设置检查点
    (原创)HyperPacer使用技巧之集合点设置
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12461792.html
Copyright © 2020-2023  润新知