• 《Linux高性能服务器编程》--TCP/IP协议族


    目录

    1--TCP/IP协议族

    2--数据链路层

    3--网络层

    4--传输层

    5--应用层

    6--封装和分用

    7--ARP协议的工作原理


    1--TCP/IP协议族

            TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层网络层传输层和应用层

    2--数据链路层

            数据链路层两个常用协议:ARP 协议(地址解析协议)和 RARP 协议(逆地址解析协议);

            ARP 协议:IP地址转换为物理地址(MAC地址);

            RARP 协议:用于无盘工作站,由于缺乏存储设备无法记住自身的 IP 地址,需要利用网卡上的物理地址来向网络管理者查询自身的 IP 地址;

    3--网络层

            网络层的任务是选择中间结点(路由器),以确定两台主机之间的通信路径

            网络层的两个常用协议:IP 协议和 ICMP 协议;

            IP 协议使用逐跳的方式来确定通信路径,ICMP 协议用于检测网络连接

            ICMP 协议使用的报文格式:8位类型 + 8位代码 + 16位检验和 + 报文内容;8位类型字段用于区分报文格式,其将 ICMP 报文划分为差错报文查询报文两大类;

            差错报文用来回应网络错误:类型 3 表示目标不可到达,类型 5 表示重定向;

            查询报文用来查询网络信息:ping 程序使用类型 8 查看目标是否可到达;

            8 位代码用于进一步细分不同的划分条件;

            16 位校验和字段对整个报文进行循环冗余校验(CRC),以检验报文在传输过程中是否损坏;

    4--传输层

            传输层为两台主机上的应用程序提供端到端的通信,常用的协议包括 TCP 协议、UDP 协议和 SCTP 协议;

            TCP 协议(传输控制协议)为应用层提供可靠的、面向连接的和基于流的服务;

            UDP 协议(用户数据报协议)为应用层提供不可靠、无连接和基于数据报的服务;

            SCTP 协议(流控制传输协议),用于在因特网上传输电话信号;

    5--应用层

            应用层负责处理应用程序的逻辑,其在用户空间实现;应用层常用的协议包括:telnet 协议、OSPF 协议、DNS 协议;应用层的协议即可以使用 TCP 服务,也可以使用 UDP 服务;

            telnet 协议是一种远程登陆协议,其能在本地完成远程任务;

            OSPF 协议(开放最短路径优先)协议是一种动态路由更新协议,其用于路由器之间的通信,告知对方各自的路由信息;

            DNS 协议提供机器域名到 IP 地址的转换;

    6--封装和分用

            每层协议都在上层数据的基础上加上本层的头部信息,以实现本层的功能,这个过程称为封装;经过 TCP 封装后的数据称为 TCP 报文段;经过 UDP 封装后的数据称为 UDP 数据报;经过 IP 封装后的数据称为 IP 数据报;经过数据链路层封装的数据称为帧;帧是最终在物理网络中传送的字节序列;

            当帧到达目的主机时,将沿着协议栈自底向上依次传递,各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序,这个过程称为分用;

    7--ARP协议的工作原理

            ARP 协议能够实现任意网络层地址到任意物理地址的转换,其工作原理如下:主机向自己所在的网络广播一个 ARP 请求,该请求包含目标机器的网络地址;网络上其他机器都将收到这个请求,只有被请求的目标机器才会回应一个 ARP 应答,其中应答内容包含自己的物理地址;

            ARP 维护一个高速缓存,其中包含经常访问或最近访问的机器的 IP 地址到物理地址的映射,这样可以避免重复的 ARP 请求,提高发送数据包的速度;

  • 相关阅读:
    机器学习 面试/笔试题(更新中)
    常见故障及其解决方法
    Nagios自定义插件的编写规范
    记录一次错误---想让U-net网络输入大小不一致的图片
    presto框架【博学谷学习记录】
    服务器产生丢包的原因有哪些
    【图像隐藏】基于matlab混合DWT-HD-SVD数字图像水印方法技术【含Matlab源码 2007期】
    【BOOST C++ 12 函数式编程】(4) Boost.Ref
    MySQL索引
    android FM DAB相关的知识
  • 原文地址:https://blog.csdn.net/weixin_43863869/article/details/132995860