TCP/IP-----协议号、端口号、ARP、icmp

article/2025/9/12 22:22:52

文章目录

  • 一、数据流向过程
  • 二、协议详解
    • 1)ARP协议
    • 2)ICMP协议

  • 协议号
    协议号是存在于IP数据报的首部的20字节的固定部分,占有8bit.该字段是指出此数据报所携带的是数据是使用何种协议,以便目的主机的IP层知道将数据部分上交给哪个处理过程。也就是协议字段告诉IP层应当如何交付数据。
协议号协议类型说明
0HOPOPTIPv6逐跳选项
1ICMPInternet控制消息
4IPIP中的IP(封装)
5ST
6TCP传输控制
17UDP用户数据报
27RDP可靠数据协议
37DDP数据报传送协议
45IDRP域间路由协议
53SWIPE采用加密的IP
112VRRP虚拟路由器冗余协议
  • 端口
    端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层的进程。端口号存在于UDP和TCP报文的首部,而IP数据报则是将UDP或者TCP报文做为其数据部分,再加上IP数据报首部,封装成IP数据报。

一、数据流向过程

1.客户端发送一个数据包给ip,然后ip将进来的数据发送给传输协议(tcp或者udp)
2.传输协议再根据数据包的第一个报头中的协议号和端口号来决定将此数据包给哪个应用程序。

IP协议号确定送给哪个模块(TCP/UDP/ICMP…)处理
协议号+端口号唯一的确定了接收数据包的网络进程(也叫网络服务)。tcp和udp中的端口31指的并不是同一个端口。但是对于同一个协议,端口号确实唯一的。

二、协议详解

1)ARP协议

  • ARP概述
    ①ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址
    ②在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。
    ③一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装

在这里插入图片描述

目的:将IP地址映射成物理地址,在数据包离开计算机之前,必须要找到目的硬件的地址。
过程:一个ARP请求在网上广播,请求由一个进程接收,它回复物理地址
高速缓存:存放最近Internet地址到硬件地址之间的映射记录,每一项的生存时间一般为20分钟。
对于一个ARP请求来说,除了目的端硬件地址外所有的其他字段都有填充值,当系统收到一份目的端为本机的ARP的请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,最后把它发送回去。
基于功能来考虑,ARP是链路层协议;基于分层/包封装来考虑,ARP是网络层协议

2)ICMP协议

ICMP协议的功能主要有:

  1. 确认IP包是否成功到达目标地址
  2. 通知在发送过程中IP包被丢弃的原因
    在这里插入图片描述

1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
2.ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6
3.ping命令是基于ICMP,是在网络层,不涉及端口


http://chatgpt.dhexx.cn/article/TjDDhAVl.shtml

相关文章

UDP协议

引言 本文中只关于IPv4;UDP是一种保留消息边界的简单的面向数据报的传输层协议。它不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制。总之,能没有的都没了。但它提供了差错检测,是一种端到端的校验和。因此使用它的程序必须自己实现…

BGP协议

BGP协议 工作层工作原理BGP简单配置———含密码认证配置个人图解BGP 工作层 BGP是工作在应用层的协议,但基于传输层的TCP协议 工作原理 路由协议通常分为内部网关协议(IGP: Interior Gateway Protocol)和外部网关协议(EGP: Ext…

IP协议介绍

文章目录 定义特点作用寻址和路由:分片与重组: ①TCP分段与IP分片的区别?TCP分段IP分片什么是MSS?滑动窗口与MSS的区别? 什么是MTU?MSS与MTU的关系疑问UDP是否会进行分段?TCP分段后会进行IP分片…

华为 协议归纳总结

青出于蓝而胜于蓝 文章目录 一、路由优先级二、路由协议三、常见的永久组地址四、常用的UDP协议及端口号五、常用的TCP协议及端口号六、协议七、报文头格式 一些常用的知识点,经常用到,也很容易忘记、混淆,所以有必要去整理一下这些常用知识点…

管理距离 动态协议端口号 协议号

管理距离(Administrative Distance,简称AD ) 路由器可以通过多种途径获知路由条目∶如静态手工配置、各种动态路由协议等等。当路由器从两种不用的途径获知去往同一个目的地的两条路由,那么路由器会比较这两条路由的AD值,也就是管理距离&…

各协议的协议号和端口号

协议号与端口号详解 IP是网络层协议,IP头中的协议号用来说明IP报文中承载的是哪种协议(一般是传输层协议,比如6 TCP,17 UDP;但也可能是网络层协议,比如1 ICMP;也可能是应用层协议,比…

TCP/IP协议号

转自http://www.52rd.com/Blog/Detail_RD.Blog_liweikui_22903.html,作者:liweikui IP协议号:IP首部中有8位协议号,用于指明IP的上层协议,具体如下: 协议号 协议类型 说明 0 HOPOPT IPv6逐跳选项 1…

MATLAB APP全局变量的使用

切换到代码视图,左上角代码浏览器点击属性,有如下提示: 点击➕旁边,会出现提示: 按照提示所说,在这里就可以添加全局变量了。 点击➕,在代码中便会添加如下代码: properties (Acce…

MATLAB GUI 设全局变量的位置

如果要在控件之外定义全局变量, 则这个全局变量要设置在OutputFcn下面 如图:

matlab 全局变量(global)数据类型报错问题

今天我在做matlab的GUI界面时,其中涉及到定义一个全局的元胞变量(cell)。将其摘录下来如下: clc;clear all global a s11;s2123;s3a; a(1,1:3){s1,s2,s3}然后出现错误:从 cell 转换为 double 时出现以下错误:错误使用 double无法从 cell 转换…

matlab 全局符号变量,优化全局变量使用 - MATLAB Simulink Example - MathWorks 中国

示例模型 在模型 matlab:rtwdemo_optimize_global_ebf 中,Assignment 模块将来自 Inport 模块和 Constant 模块的值赋给输出信号。输出信号馈入 Gain 模块中。 model rtwdemo_optimize_global_ebf; load_system(rtwdemo_optimize_global_ebf) 生成代码但不进行优化…

20220117 matlab 全局变量调试

要在外部和里面都定义global才行貌似 global f1function parameter_inpu__() global f1 f11;endglobal f1 b1 f_temp test1__(); dynamic_e()function parameter_inpu__() global f1 f11;endfunction test1__() global f1 b1 b1f1;endfunction dynamic_e() global f_temp f_te…

matlab变量全局化,matlab全局变量global

matlab global定义全局变量的问题 我写了matlab的一个主函数,放在一个M文件中,然后在这个主函数中调用其可以,前提是两个函数共用变量均需用global声明 例子: 保存f.m内容如下: function f(a,b) global x y; x=a; y=b; 保存g.m内容如下: function [out]=g global x y; ou…

matlab 编程之全局变量(global)和永久变量(persistent)

一、global 官方解释: help globalglobal Define global variable.global X Y Z defines X, Y, and Z as global in scope.Ordinarily, each MATLAB function has itsown local variables, which are separate from those of other functions,and from those of th…

Matlab之全局变量

通过返回修改后的输入参数,可以实现函数内部对Matlab工作空间变量的修改。而另一种殊途同归的方法则是使用全局变量。 声明全局变量需要用到global关键词,语法格式为‘global variable’ 通过全局变量可以实现Matlab工作空间变量空间和多个函数的函数空间…

JavaScript 原型链和继承面试题

JavaScript 原型链和继承问题 JavaScript 中没有类的概念的,主要通过原型链来实现继承。通常情况下,继承意味着复制操作,然而 JavaScript默认并不会复制对象的属性,相反,JavaScript只是在两个对象之间创建一个关联&am…

11、原型链、原型继承和Class继承

11.1 原型 每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象(函数.prototype)的用途是包含可以由特定类型的所有实例共享的属性和方法 11.2 原型链 基本思想就是…

原型链和原型继承

什么是原型链? 每一个对象都有自己的原型对象,而原型对象也属于对象也会有自己的原型对象,依次类推就会形成链式结构,然后就构成了原型链,所有对象的原型链最终都会指向object.prototype,而最终object.pro…

关于原型、原型链和原型继承的理解

# 个人理解 原型: prototype首先是只作用于函数的属性,无法直接用于对象或变量。 每个函数中都自带一个__proto__属性(可以存储继承对象中的prototype属性--- p.__proto__ Person.prototype)。 在实例化对象(构造函数)时,寻找某个属性(如dem…