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

2023-09-18 21:46:36

目录

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

更多推荐

【Xilinx】基于MPSoC的OpenAMP实现(一)

【Xilinx】基于MPSoC的OpenAMP实现(一)一、开发环境1、开发思路2、下载官方bsp包二、编译Linux1、配置petalinux环境变量2、创建工程3、进入目录4、设置缓存目录(重点:可离线编译,加快编译速度)5、配置u-boot6、配置内核6.1增加内核选项(重点:没有正确选择会导致运行时各种奇怪的报

Linux常用命令—find命令大全

文章目录一、find命令常用功能1、find命令的基本信息如下。2、按照文件名搜索3、按照文件大小搜索4、按照修改时间搜索5、按照权限搜索举例:6、按照所有者和所属组搜索7、按照文件类型搜索8、逻辑运算符一、find命令常用功能1、find命令的基本信息如下。命令名称:find。英文原意:searchforfilesi

怎么设置IP白名单

IP白名单是一种网络安全机制,用于限制只允许特定的IP地址或IP地址范围通过访问控制。在本文中,我将详细解释IP白名单的概念、用途以及如何设置IP白名单。**1.什么是IP白名单?**IP白名单是一种访问控制列表,它允许或阻止特定的IP地址或IP地址范围对系统、应用程序或网络进行访问。只有在白名单中的IP地址被授权通过

C++ std::unique_lock 用法

文章目录1.创建std::unique_lock对象2.自动加锁和解锁3.延迟加锁与手动加解锁4.尝试加锁5.配合条件变量使用6.小结参考文献std::unique_lock是C++11提供的一个用于管理互斥锁的类,它提供了更灵活的锁管理功能,适用于各种多线程场景。1.创建std::unique_lock对象std::

【面试刷题】——Qt事件处理器级别的划分

在Qt中,事件处理器(EventHandler)可以分为不同的级别,以适应不同的需求和场景。以下是Qt事件处理器级别的划分:应用程序级别事件处理器:这是最高级别的事件处理器,通常用于处理应用程序范围内的事件,如全局快捷键、自定义应用程序级别的事件等。应用程序级别事件处理器可以通过继承QCoreApplication或使

浅谈电气防火保护器在地下商场的应用 安科瑞 缪阳扬

摘要:近年来,我国城市发展速度加速。很多城市大力建造地下建筑设施,比如地铁、地下停车场和地下商场等。地下商场属于人员密集型建筑,其防火设计一直令相关的专家头疼。由于人员密集,防火处理不好将酿成灾难性的后果。因此,防火十分重要。防火设计可以着重于疏散和火灾探查报警系统两个方面,而电气火灾监控系统在实际预警和报警过程中有着

vector的扩容机制—为何是1.5倍或者是2倍

文章目录前言一、Vector扩容过程二、为什么是1.5倍或者2倍?前言在C++编程中,Vector是一种常用的动态数组容器。其大小是可以动态调整的,而在扩容操作中,Vector通常会将容量增加为原来的两倍。本篇博客将详细介绍Vector扩容的原理、扩容过程,并解释为何选择两倍进行扩容。一、Vector扩容过程当向vec

QT用户登录注册,数据库实现

登录窗口头文件#ifndefLOGINUI_H#defineLOGINUI_H#include<QWidget>#include<QLineEdit>#include<QPushButton>#include<QLabel>#include<QMessageBox>#include<QSqlDatabase>//数据库

智能配电监控管理系统:高效、安全、绿色的电力管理

随着科技的快速发展,电力行业正在逐步实现智能化、数字化转型。其中,智能配电监控管理系统在优化电力资源配置、提升运营效率、保障用电安全等方面发挥着至关重要的作用。系统架构:力安科技电易云智能配电监控管理系统是在配电室(含高压柜、变压器、低压柜)、箱式变电站、配电箱及动力柜(箱)、智能终端箱实现智能化、网络化、数字化的基础

虹科CiA演讲回顾 | CAN(FD)总线协议转换原理及其在汽车行业的应用

2023年9月14日,CiA中国技术日直播活动在线上举行,该活动致力于开展与CAN总线相关领域的技术工作,演讲者都是CAN领域的专家。虹科首席工程师陈皓受邀参与活动,并带来以“CAN和CANFD总线协议转换”为主题的演讲。本次演讲内容主要分为三个部分:首先介绍了CAN和CANFD总线的区别,并以此为切入点讲解了两种总线

在已知的二维坐标里找到最接近的点

一、业务场景最近在研发的项目,在做可视化层,在全球地图上,对我们的国家的陆地地图经纬度按照步长为1的间隔做了二维处理。在得到一组整数的点位信息后,需要将我们已有的数据库数据(业务项目)按照地址的经纬度,映射到这些点位上,找到对应的id建立联系。简化后的处理逻辑如下:参考上图:纬度为y轴,跨度为35,间距为1经度为x轴,

热文推荐