《Linux高性能服务器编程》学习笔记

《Linux高性能服务器编程》学习笔记Linux高性能服务器编程TCP/IP协议族TCP/IP协议族体系结构以及主要协议数据链路层网络层传输层应用层封装分用测试网络ARP协议工作原理以太网ARP请求/应答报文详解ARP高速缓存的查看和修改DNS工作原理DNS查询和应答报文详解Linux高性能服务器编程TCP/IP协议族TCP/IP协议族体系结构以及主要协议TCP/IP协议族是一个四层协议结构,自底向上分别是数据链路层,网络层,传输层和应用层数据链路层功能:实现了网卡接口的网络驱动程序,以处
摘要由CSDN通过智能技术生成

Linux高性能服务器编程

TCP/IP协议族

TCP/IP协议族体系结构以及主要协议

TCP/IP协议族是一个四层协议结构,自底向上分别是数据链路层网络层传输层应用层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmqKDtNu-1641416938967)(C:\Users\zeizei\AppData\Roaming\Typora\typora-user-images\image-20220105152940775.png)]

数据链路层
  • 功能:实现了网卡接口的网络驱动程序,以处理数据在物理媒介(以太网、令牌环等)上的传输。

  • 常用协议:

    它们都实现了IP地址机器物理地址(通常是MAC地址)之间的相互转换。

    • ARP协议(Address Resolve Protocol,地址解析协议)

      目标机器的IP地址 -> 物理地址

      网络层使用IP地址寻址一台机器,数据链路层使用物理地址寻址一台机器,因此网络层必须将目标机器的IP地址转化成物理地址,才能使用数据链路层提供的服务。

    • RARP协议(Reverse Address Resolve Protocol,逆地址解析协议)

      用于网络上的某些无盘工作站,因为缺乏存储设备所以无盘工作站无法记住自己的IP地址,但可以使用网卡的物理地址来向网络管理者(服务器或网络管理软件)查询自身IP地址。

      网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。

网络层
  • 功能:实现数据包的选录和转发

    因为通信的两台主机并不是直接相连的,而是通过多个中间节点(路由器)连接的,网络层就是要选择这些中间节点,来确定两台主机之间的通信路径。

    网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和应用层看来,通信双方是直接相连的。

  • 常用协议:

    • IP协议(Internet Protocol,因特网协议)

      根据数据包的目的IP地址来决定如何投递它。

      使用逐跳(hop by hop)的方式确定通信路径。

    • ICMP协议(Internet Control Message Protocol,因特网控制报文协议)

      IP协议的重要补充,用于检测网络连接。

      报文格式:
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJxz1LbA-1641416938969)(C:\Users\zeizei\AppData\Roaming\Typora\typora-user-images\image-20220105155259609.png)]

      • 8位类型:区分报文类型

        • 差错报文:回应网络错误(比如目标不可到达(类型值为3)、重定向(类型值为5))
        • 查询报文:查询网络信息(ping程序使用ICMP报文查看目标是否可到达(类型值为8))
      • 8位代码:进一步细分不同的条件

        比如重定向报文,使用代码值0代表对网络重定向,代码值1表示对主机重定向。

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

      ICMP协议并非严格意义上的网络层协议!因为它使用属于同一层的IP协议提供的服务。

传输层
  • 功能:为两台主机上的应用程序提供端到端通信。(只关心起始端和目的端,不在乎数据包的中转过程)

  • 常用协议:

    • TCP协议(Transmission Control Protocol,传输控制协议)

      为应用层提供可靠的,面向连接的和基于的服务。

      使用超时重传、数据确认等方式来确保数据包被正确地发送到目的端。

    • UDP协议(User Datagram Protocol,用户数据报协议)

      为应用层提供不可靠无连接和基于数据报的服务。

    • SCTP协议(Stream Control Transmission Protocol,流控制传输协议)

      较新,为了在因特网上传输电话信号设计的。

应用层
  • 功能:处理应用程序的逻辑,比如文件传输、名称查询和网络管理等。

  • 常用协议:

    • ping

      应用程序,不是协议。前文说过它可以利用ICMP报文检测网络连接,是调试网络环境的必备工具。

    • telnet协议

      一种远程登录协议,使我们可以在本地完成远程任务。

    • OSPF协议(Open Shortest Path First,开放最短路径优先)

      动态路由更新协议,用于路由器之间的通信,以告知对方各自的路由信息。

    • DNS协议(Domain Name Service,域名服务)

      提供机器域名到IP地址的转换

    应用层协议可能跳过传输层直接使用网络层的服务(比如ping和OSPF),也可以既使用TCP服务又可以使用UDP服务,比如DNS协议。

封装

应用程序数据在发送到物理网络上之前,沿着协议栈从上往下依次传递。

封装:每层协议都将在上层数据的基础上加上自己的头部信息(有时还有尾部信息),以实现该层的功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值