
网络通信协议
文章平均质量分 58
一一风浪
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
IEEE 802.3这些标准的协议表示
IEEE 802.3这些标准的协议表示原创 2022-06-15 08:51:08 · 4732 阅读 · 0 评论 -
MTU问题,为何抓包到1514
MTU问题原创 2022-06-15 08:49:50 · 1633 阅读 · 0 评论 -
IP地址划分及子网掩码
IP地址划分及子网掩码作用原创 2022-06-14 10:04:43 · 1667 阅读 · 0 评论 -
tftp:timeout问题解决 - 从Windows传输文件到开发板
通过串口工具ping一下主机,确定是否能ping通,确保通信无问题,如下ping通后,确保PC tftp软件打开, 检查防火墙是否关闭,专用网络是家庭网络,允许同网段下的数据传输,无需关闭,因此只需要把公用网络的防火墙关闭,再次传输文件,成功。如下图到此,文件可以正常上传到设备了...原创 2022-03-28 11:57:19 · 3143 阅读 · 0 评论 -
Linux中如何在虚拟机ping通自己的主机IP提示connect: network is unreachable的解决方法
例如:Linux虚拟机我的网段是192.168.24.XXX主机电脑的网段是192.168.10.XXXXXX为任意0-255数字这种情况下是ping不通的,两种解决办法解决办法一:将Linux虚拟机的IP地址修改成和主机电脑IP地址网段一致,比如都修改成192.168.10.XXX,修改方法如下:1.虚拟机的网络设置需要修改:2.修改虚拟机内linux的ip地址vim /etc/sysconfig/network-scripts/ifcfg-eth0,修改如下:这里的..原创 2021-12-13 13:19:27 · 8379 阅读 · 1 评论 -
套接字说明
套接字是一套用C语言写成的应用程序开发库,它首先是一个库。主要作用就是实现进程间通信和网络编程,因此在网络应用开发中被广泛使用。套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。在Python中可以基于套接字来使用传输层提供的传输服务,并以此进行开发网络应用。实际开发中使用的套接字可以分为三类:流套接字(TCP套接字)、数据报套接字和原始套接字。原创 2021-08-04 13:57:02 · 574 阅读 · 1 评论 -
MTU值如何设置
以下内容是通过网上收集资料,测试通过的。 一、原理:在windows里,默认的MTU是1500,但是不同的网络接入方式,不同地区的网络运营商,甚至不同的路由器,它们的MTU值都可能是不同的。例如:ADSL接入时MTU为1492字节,假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时ADSL接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个(为了便于理解,暂时不将“数据包报头”纳入考虑范围)显然这...转载 2021-07-30 11:03:32 · 3385 阅读 · 0 评论 -
MTU的设置
MTU 在46 ~ 1500字节,默认一般都是1500,按默认计算,以太网帧长度= 7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS = 1526抓包长度 =源MAC(6char)+目的MAC(6char)+长度/类型(2字节)+MTU = 1514---- 如果MTU是最小的46,则抓包长度是6+6+2+46=60,即最小抓包长度是60MTU = 20字节IP头部+1480数据//windows 查询和设...转载 2021-07-30 11:00:41 · 1190 阅读 · 0 评论 -
struct arpreq 获取mac地址方法
struct arpreq{struct sockaddr arp_pa; //协议地址struct sockaddr arp_ha; //硬件地址int arp_flags;//标志位struct sockaddr arp_netmask;//网络掩码char arp_dev[16];}#define ATF_COM 0x02 //已完成的邻居 (成员ha有效,且含有正确的MAC地址)#define ATF_PERM 0x04 //永久性的邻居(邻居状态有NUD_PE...原创 2021-03-29 10:59:29 · 1657 阅读 · 0 评论 -
ospf原理及基本概念
1.OSPF的基本原理 当路由器开启OSPF后,路由器之间就会相互发送HELLO报文,HELLO报文中包含一些路由器和链路的相关信息,发送HELLO报文的目的是为了形成邻居表,然后,路由器之间就会发送LSA(LINK STATE ADVERTISEMENT,链路状态通告),LSA告诉自己的邻居路由器和自己相连的链路的状态,最后,形成网络的拓扑表,其实这个过程是很复杂的,他们经过发LSA,记录LSA,装发LSA,最后形成LSDB(链路状态数据库,即拓扑表),形成拓扑表之后,在经过SPF算法,通...原创 2020-08-17 16:06:25 · 12980 阅读 · 0 评论 -
IGMPv2包结构及工作机制
IGMPv2的工作机制与IGMPv1大致相同,最大的不同点在于IGMPv2增加了离开组机制,当组成员主动离开组播组时,会主动发送成员离开报文告知查询器。查询器收到组成员发送出的组成员离开报文后,会连续发送特定组查询报文,询问该组播组中是否还存在组成员,如果一段时间内没有收到成员主机发送的报告报文,那么IGMP查询器将不再维护该组的组成员关系,IGMPv2可以使IGMP查询器及时了解到网段内哪些组播组已不存在成员,从而及时更新组播组信息,减少网络中不必要的组播流量。 IGMPv2报...原创 2020-06-22 15:00:08 · 1427 阅读 · 0 评论 -
组播IGMP Snooping理论知识
IGMP Snooping配置在二层组播设备上,通过对上游三层设备和下游用户之间的IGMP报文进行分析,建立和维护二层组播转发表,实现组播数据报文在数据链路层的按需分发。 IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议,通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出接口信息,从而管理和控制组播数据报文在数据链路层的转发。在很多情况下,组播报文要不可避免地经过...原创 2020-06-20 13:37:12 · 2286 阅读 · 0 评论 -
TCP网络编程中connect()、listen()和accept()三者之间的关系
最近在做TCP网络编程,有一些模糊,看到一篇文章描述很清晰,转载过来学习一下。基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:connect()函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让 Li...转载 2019-04-18 10:34:00 · 247 阅读 · 0 评论 -
STP BPDU报文
字段 字节数 说明 Protocol Identifier(协议ID) 2 总是为0 Protocol Version(协议版本) 1 STP(802.1D)传统生成树,值为0; RSTP(802.1W)快速生成...原创 2019-02-21 10:24:33 · 14968 阅读 · 0 评论 -
TCP与UDP的区别
TCP和UDP区别 TCP和UDP编程区别 TCP编程的服务器端一般步骤是: 1、创建一个socket,用函数socket(); 2、设置socket属性,用函数setsockopt(); * 可选 3、绑定IP地址、端口等信息到socket上,用函数bind(); 4、开启监听,用函数listen(); 5、接收客户端上来的连接,用函数accep...转载 2019-01-18 13:22:30 · 1848 阅读 · 0 评论 -
checksum计算方法
1、 先将需要计算checksum数据中的checksum设为0; 2、 计算checksum的数据按2byte划分开来,每2byte组成一个16bit的值,如果最后有单个byte的数据,补一个byte的0组成2byte; 3、 将所有的16bit值累加到一个32bit的值中; 4、 将32bit值的高16bit与低16bit相加到一个新的32bit值中,若新的32bit值大于0Xffff,...原创 2018-07-19 10:06:26 · 60466 阅读 · 1 评论 -
进程间传递文件描述符--sendmsg,recvmsg
UNIX域套接字可以在同一台主机上各进程之间传递文件描述符。下面先来看两个函数:[cpp] view plain copy#include <sys/types.h> #include <sys/socket.h> ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); ssize_...转载 2018-05-08 16:20:31 · 530 阅读 · 0 评论 -
进程间传递描述符
每个进程都拥有自己独立的进程空间,这使得描述符在进程之间的传递变得有点复杂,这个属于高级进程间通信的内容,下面就来说说。顺便把 Linux 和 Windows 平台都讲讲。Linux 下的描述符传递Linux 系统系下,子进程会自动继承父进程已打开的描述符,实际应用中,可能父进程需要向子进程传递“后打开的描述符”,或者子进程需要向父进程传递;或者两个进程可能是无关的,显然这需要一套传递机制。简单的...转载 2018-05-08 15:47:53 · 418 阅读 · 0 评论 -
组播地址使用范围规定
组播报文的目的地址使用 d 类 ip 地址,范围是从 224.0.0.0 到 239.255.255.255。d 类地址不能出现在 ip 报文的源 ip 地址字段。224.0.0.0~224.0.0.255 为预留的组播地址(永久组地址) 只能用于局域网中,路由器是不会转发的地址。224.0.0.0 保留不做分配,其它地址供路由协议使用。224.0.1.0~238.255.255.255 为用户可...原创 2018-05-08 14:09:15 · 23453 阅读 · 0 评论 -
多播,IP_MULTICAST_TTL,IP_ADD_MEMBERSHIP,IP_MULTICAST_IF,IP_DROP_MEMBERSHIP
11.3 多播单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。11.3.1 多播的概念多播,也称为"组播",将网络中同一业务类型主机进行了逻辑上的分组,进行数据收发的时候其数据仅仅在同...转载 2018-05-10 14:11:12 · 1072 阅读 · 0 评论 -
TCP/IP报文头部结构整理
IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。 优点:简单,高效。 无状态指:IP通信双方不同步传输数据的状态信息,所有的IP数据报的传输都是独立的。所以容易发生重复和乱序的情况并且IP层不予处理。 然后将这些乱序的交给上层传输层(TCP/UDP等)来处理,将其处理成有序的,正确的。再交给应用层。 不可靠指:IP协议不能保证IP数据报准确到达。所以它提供ICMP...转载 2018-05-10 10:49:02 · 1221 阅读 · 0 评论 -
Linux的SOCKET编程详解
Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有转载 2017-07-11 09:42:50 · 249 阅读 · 0 评论 -
http://blog.youkuaiyun.com/lickylin/article/details/24432009?reload
Linux IGMP 学习笔记 之一 IGMP协议格式一、IGMP定义及分类IGMP:INTERNET组管理协议,与广播最大的不同是,IGMP允许每一个网络设备决定是否参与到一个特定的多播群组中。 IGMP的ip地址,组播ip地址的范围为224.0.0.0-239.255.255.255。其中224.0.0.1代表子网上的所有计算机,224.0.0.2代表子转载 2017-11-02 10:00:10 · 200 阅读 · 0 评论 -
ARP 数据包格式分析
1.ARP数据包格式在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太转载 2017-11-03 09:20:27 · 1863 阅读 · 0 评论 -
协议号大全
0 HOPOPT IPv6 逐跳选项 1 ICMP Internet 控制消息 2 IGMP Internet 组管理 3 GGP 网关对网关 4 IP IP 中的 IP(封装) 5 ST 流 6 TCP 传输控制 7 CBT CBT 8 EGP 外部网关协议 9 IGP 任何专用内部网关 (Cisco 将其用于 IGRP) 10 BBN-RCC-M原创 2017-11-17 10:39:58 · 13960 阅读 · 1 评论 -
PIM-DM/SM (1)
PIM-SM模式和PIM-DM模式除了在发现组成员的方式上不同之外,记录路由表的方式也不一样,例如网络中有一个组,地址为:224.1.1.1,发送者为100.1.1.1,PIM-SM模式记录为(*,224.1.1.1),可以看出,PIM-SM模式并不关心组播的源地址,而统统将源地址使用星号*来表示,这样一来,PIM-SM为一个组只记录一个条目,而不管这个组有多少个发送者。这样的记录方式称为(*,G原创 2017-12-07 16:55:03 · 1410 阅读 · 0 评论 -
PIM-DM/SM (2)(协议包的区别)
1. 报文格式的区别 Pim-dm中的类型字段有:0:hello 3:加入/剪枝5:Assert 6:嫁接7:嫁接回应9:状态刷新 Pim-sm中的类型字段有:0:hello 1:注册2:停止注册3:加入/剪枝4:Bootstrap 5:Assert 8:候选RP公告 2. 类型报文的区别 0:Hello报文:用原创 2017-12-07 17:14:14 · 5745 阅读 · 0 评论 -
IGMP snooping和IGMP proxy的区别
谈到IGMP snooping,又难免会想到IGMP proxy,有的时候多想像,多思考一下或许有更深的体会哦.那他们之间的区别是什么呢,先来看下面这个图,l2 switch开启了IGMP snooping,router1是一个远程multicast router,用PIM协议来转发组播包. 开启IGMP snooping的作用是侦听IGMP router 和IGMP c转载 2018-01-11 14:13:05 · 20791 阅读 · 0 评论 -
组播基本概念、IGMP、IGMP监听学习笔记
为什么需要组播简单来说,就是因为在一些诸如视频点播的应用时,单播对主机的压力太大、而广播又对网络链路的压力太大。所以……组播IP地址224.0.0.0~239.255.255.255 所有组播地址224.0.0.0~224.0.0.255 有特殊用途的组播地址(不能被路由)224.0.0.1 同一网段所有主机224.0.0.2 同一网段所有组播路由器转载 2018-01-11 15:21:30 · 18743 阅读 · 0 评论 -
组播基本概念、IGMP、IGMP监听学习笔记(续)
交换机组播地址表的学习和维护(IGMP监听过程)(假设当前只有一个VLAN)1、当组播路由器发出IGMP通用查询报文然后收到主机回应的IGMP报告报文时,交换机会把收到回应的端口和对应的组播地址学习到组播地址表中(其实只要是IGMP报告报文,都会学习,不管有没有事先查询)。如下图所示:2、当主机发出IGMP离开报文时,组播路由器会发送IGMP特定组查询报文。如果该端口在一定转载 2018-01-11 15:29:16 · 1548 阅读 · 0 评论 -
IGMP协议
IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。 IGMP协议(IPv4) 和MLD协议(IPv6)用来帮助主机指定对那些组感兴趣(加入哪一些多播组),以及确定来自某些特定源的报文应该被接收还是过滤掉。为了转载 2018-02-01 13:17:39 · 8823 阅读 · 0 评论 -
IGMP V3协议报文格式
IGMPv3包格式 IGMPv3包含查询报文和报告报文两种不同格式的报文,下面分别对两种报文的格式做简要说明。 查询报文:字段说明:类型(Type): 0x11 成员关系查询最大响应代码(Max_Resp_Code):最大响应代码字段指定在发送一个响应报告之前所允许的最大时间。实转载 2018-02-01 13:21:24 · 4094 阅读 · 0 评论 -
IP数据报中分片标志值
如果IP数据报不分片,分片标志DF(Don’t Fragment)会被设置为1。分片标志MF(More Fragment)设置为0。下面是详细解释:1:首先来一张IP数据报的报文头部结构。 2:需要注意第二行数据,有这么三个字段序列号:开始发送数据时由发送方生成。标识发送方发送的每一个数据报,如果发送的数据报未发生分片,则此值依次加1,如果发生了分片,分片后的各转载 2018-01-25 15:31:05 · 15481 阅读 · 2 评论 -
组播PIM
PIM(Protocol Independent Multicast)是一种组播路由协议。PIM不依赖于某一特定的单播路由协议,它可以利用任意单播路由协议建立的单播路由表完成RPF检查功能,从而建立组播路由。由于PIM无需收发组播路由更新,所以与其它组播路由协议相比,PIM开销降低了许多。 PIM定义了两种模式:稠密模式(Dense Mode)、稀疏模式(Sparse M...转载 2018-04-02 09:50:18 · 6721 阅读 · 0 评论 -
组播Multicast 3 PIM的两种模式
session 1 PIM的denes-mode稀疏模式PIMv2denes-mode使用有源数模型,没有RP的概念,所有的客户端都是和源直接收发组播流量一、(* G)和(S G)表项是如何产生的(* G)表项规则,父表项1、当接口有组播流时候产生,mroute中先产生(* G)表项,后产生(S G)表项,当超过holdtime时间(默认3min)后仍然没有子项时消失,有子项时候holdtime不...转载 2018-04-02 11:07:50 · 2435 阅读 · 1 评论 -
igmp v3各种类型的协议报文解析
IGMP V3 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...原创 2018-04-10 10:03:14 · 7822 阅读 · 0 评论 -
数据链路层LLDP协议
一、LLDP协议概述 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。 LLDP(Link Layer Discovery Protocol,链路层发现协转载 2017-07-10 13:12:51 · 726 阅读 · 0 评论