linux 网络协议

协议:

简介:
  协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

  它的三要素是: 语法、语义、时序。为了使数据在网络上从源  到达  目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为网络上传输的 数据包 的格式

  协议往往分为几个层次进行定义,分层定义是为了使某一层协议的改变不影响其他层次的协议。

常见协议:

  应用层常用协议:FTP(File Transfer Protocol 文件传输协议)、HTTP(浏览器访问服务器)(Hyper Text Transfer Protocol 超文本传输协议)、NFS(Network File System 网络文件系统)

  传输层常用协议:TCP协议(Transmission Control Protocol 传输控制协议)、UDP协议(User Datagram Protocol 用户数据报协议)

  网络层常用协议:IP协议(Internet Protocol 因特网互联协议)、ICMP(Internet Control Message Protocol 因特网控制报文协议)、IGMP协议(Internet Group Management Protocol 因特网组管理协议)

  网络接口层常用协议:ARP协议(Address Resolution Protocol 地址解析协议)、RARP(Reverse Address Resolution Protocol 反向地址解析协议)

  例如:Xshell:通过SSH(应用层协议)协议(sshd服务) 主机IP为Linux系统的IP地址 端口号默认 22 进行远程连接操作使用

       

UDP协议:

  1.源端口号:发送方端口号

  2.目的端口号:接收方端口号

  3.长度:UDP用户数据报的长度,最小值是8(仅有首部)

  4.校验和:检测UDP用户数据报在传输中是否有错,有错就丢弃

TCP协议:

  1.源端口号:发送方端口号

  2.目的端口号:接收方端口号

  3.序列号:本报文段的数据的第一个字节的序号

  4.确认序号:期望收到对方下一个报文段的第一个数据字节的序号

  5.首部长度(数据偏移):TCP 报文段的数据起始处距离 TCP报文段的起始处有多远,即首部长度。单位:32位,即以4字节为计算单位

  6.保留:占 6 位,保留为今后使用,目前应置为0。(SYN:建立连接请求,FIN:断开连接)

  7.紧急URG.:此置为1,表明紧急指针字段有效,它告诉系统此报文段中有紧急数据,应尽快发送。

  8.确认ACK:仅当 ACK = 1 时确认号字段才有效, TCP规定,在连接建立后所有传达的报文段都必须把 ACK 置 1

  9.推送 PSH:当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下, TCP 就可以使用推送(push)操作,这时,发送方TCP把 PSH置1,并立即创建一个报文段发送出去,接收方收到 PSH = 1 的报文段,就尽快地(即 “推送” 向前)交付给接收应用进程,而不再等到整个缓存都填满后再向上交付。

  10.复位RST:用于复位相应的 TCP 连接

  11.同步 SYN:仅在三次握手建立 TCP 连接时有效。当 SYN = 1 而 ACK = 0 时,表明这是一个连接请求报文段,对方若同意建立连接,则应在相应地报文段中使用 SYN = 1 和 ACK = 1。因此, SYN 置 1 就表示这是一个连接请求或连接接收报文。

  12.终止 FIN:用来释放一个连接。当 FIN = 1时,表明此报文段地发送方的数据已经发送完毕,并要求释放运输连接。

  13.窗口:指发送本报文段的一方的接收窗口(而不是自己的发送窗口)

  14.校验和:校验和字段校验的范围包括首部和数据两部分,在计算校验和时需要加上 12 字节的伪头部

  15.紧急指针:仅在 URG = 1时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据),即指出了紧急数据的末尾在报文中的位置,注意:即使窗口为零时也可发送紧急数据。

  16.选项:长度可变,最长可达40字节,当没有使用选项时,TCP首部长度是 20 字节。

IP协议:

  1.版本: IP 协议的版本。通信双方使用过的 IP 协议的版本必须一致,目前最广泛使用的 IP 协议版本号为4(即 IPv4)

  2.首部长度:单位是 32 位(4字节)          例:长度为1:表示有4个字节

  3.服务类型:一般不适用,取值为0

  4.总长度:指首部加上数据的总长度,单位为字节

  5.标识(identification):IP 软件在存储器中维持一个计数器,没产生一个数据报,计数器就加 1,并将此值赋给标识字段

  6.标志(flag):目前只有两位有意义。标志字段中最低位记为 MF。 MF = 1 即表示后面 “还有分片” 的数据报。MF = 0 表示这已是若干数据报片中的最后一个。

  标志字段中间的一位记为 DF,意思是 “不能分片”,只有当 DF = 1 时才允许分片

  7.片偏移:指出较长的分组在分片后,某片在源分组中的相对位置,也就是说,相对于用户数据段的起点,该片从何处开始。片偏移以 8 字节为偏移单位。

  8.生存时间:TTL,表明是数据报在网络中的寿命,即为 “跳数限制”,由发出数据报的源点设置这个字段。路由器在转发数据之前就把 TTL 值减一,当TTL 值减为零时,就丢弃这个数据报。

  默认 64 或 128  每转发一次 就减一 (防止某段网络路由中断,但信息一直发送,造成网络阻塞)

  9.协议:指出此数据报携带的数据时使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交给哪个处理过程,常用的  ICMP(1)、IGMP(2)、TCP(6)、UDP(17)、IPv6(41)

  10.首部校验和:只校验数据报的首部,不包括数据部分。

  11.源地址:发送方 IP 地址

  12.目的地址: 接收方 IP 地址

 以太网帧协议:MAC地址的封装(物理地址:MAC地址)(CRC:校验)

  类型:0x800表示 IP、0x806表示 ARP、0x835表示RARP

ARP协议:

  1.硬件类型: 1表示 MAC 地址

  2.协议类型:0x800 表示 IP 地址

  3.硬件地址长度:6  (MAC地址长度 6个字节)

  4.协议地址长度:4(IP 协议地址长度 4个字节)

  5.操作: 1 表示 ARP 请求,2 表示 ARP 应答,3 表示 RARP 请求,4 表示 RARP 应答

posted on   廿陆  阅读(123)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示