• 《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 请求,提高发送数据包的速度;

  • 相关阅读:
    浅谈归并排序:合并 K 个升序链表的归并解法
    【回归预测-PNN分类】基于粒子群算法群优化概率神经网络算法实现空气质量评价预测附matlab代码
    第三节:样式、选择器
    软件测试 - 概念篇
    达梦数据库常用SQL之生成启用自增列表插入功能及insert插入语句
    Spring Boot 中使用 Swagger
    PYTHON快捷键合集!学会让你成为大一最靓的仔
    如何在Python爬虫中使用IP代理以避免反爬虫机制
    一种用于环境声源的被动到达角(AoA)提取算法(Matlab代码实现)
    使用Eclipse完成WordCount案例(Windows本地运行)
  • 原文地址:https://blog.csdn.net/weixin_43863869/article/details/132995860