![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络协议
文章平均质量分 76
soulsoul_god
慢一点,当你理解的越多,需要记得就越少。
展开
-
TCP/IP协议
TCP/IP是一类协议系统,它是用于网络通信的一套协议集合。TCP/IP被认为是一个四层协议网络接口层:各种物理通信网络接口网络层:IP,ICMP,ARP,RARP传输层:TCP,UDP应用层:FTP,TELNET,HTTP,SMTP,DNS等网络接口层:主要是指物理层次的一些接口,比如电缆,双绞线等网络层:IP协议,ICMP协议,IGMP协议,主要是提供独立于硬件的逻辑寻址,实现物理地址和逻辑地址的转换。传输层:TCP协议,UDP协议,为网络提供了流量控制...原创 2021-01-06 16:02:11 · 1884 阅读 · 0 评论 -
网络分层
物理层:a、传输数据的单位:比特b、数据传输系统:源系统(源点、发送器)->传输系统->目的系统(接收器、终点)通道:a、单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播b、双向交替通信(半双工通信):通信双方都可发消息,但不能同时发送或接收c、双向同时通信(全双工通信):通信双方可以同时发送和接收信息通道复用技术:a、频分复用(FDM,Frequency Division Multiplexing):不同用户在不同频带,所用用户在同样时间占...原创 2021-01-06 15:58:30 · 106 阅读 · 0 评论 -
TCP/UDP分析
TCPTCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,其传输的单位是报文段。特征:1、面向连接2、只能点对点(一对一)通信3、可靠交互4、全双工通信5、面向字节流TCP 如何保证可靠传输:1、确认和超时重传2、数据合理分片和排序3、流量控制4、拥塞控制5、数据校验TCP:状态控制码(Code,Control Flag),占 6 比特,含义如下..原创 2020-12-29 17:19:38 · 325 阅读 · 0 评论 -
应用层部分协议
DNSDNS(Domain Name System,域名系统)是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。域名:域名 ::= {<三级域名>.<二级域名>.<顶级域名>},如:blog.huihut.comFTP(File Transfer Protoco.原创 2020-12-29 16:53:34 · 136 阅读 · 1 评论 -
windows下使用winpcap解析网络数据包
windows下库文件,可以读取windows网卡中数据包,并进行解析。操作如下:vs2019添加winpcap库1、https://www.winpcap.org/devel.htm下载winpcap SDK包2、winpcap SDK包解压出来之后,有lib跟include目录3、将include、lib添加到vs2019项目环境下4、vs项目中增加头文件与lib库路径5、上代码#define WIN32#define HAVE_REMO.原创 2020-05-27 15:49:24 · 6175 阅读 · 0 评论 -
TCP/IP头部结构体
// i386 is little_endian. #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN (1) //BYTE ORDER #else #error Redefine LITTLE_ORDER #endif //Mac头部,总长度14字节 typedef struct _eth_hdr { unsigned char dstmac[6]; //目标mac地址 unsigned.转载 2020-05-26 17:58:06 · 479 阅读 · 0 评论 -
第十三篇:socket套接字
TCP sokcet调用过程:具体代码参考:https://blog.csdn.net/xiadeliang1111/article/details/85210205udp socket调用过程:具体代码参考:https://blog.csdn.net/xiadeliang1111/article/details/104658548以上实现,性能方面会有很大限...原创 2020-03-05 14:40:48 · 198 阅读 · 0 评论 -
udp socket
服务端:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#define PORT 4321#define M...原创 2020-03-04 17:45:59 · 153 阅读 · 0 评论 -
C语言解析pcap数据包格式
通过tcpdump命令或者wireshark抓取数据包。如下图所示:pcap文件格式: 24字节pcap文件头+(16字节pcap数据包头+数据包)*n解析源码如下:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<netinet/in.h>...原创 2020-02-25 17:14:14 · 9733 阅读 · 3 评论 -
第十一篇:TCP协议(上)
TCP数据包格式:源端口、目的端口用于确认应用程序序号:指出段中的数据部分在发送方数据流中的位置,会随着时间增加。主要是为了解决TCP数据包传输过程中乱序的问题。确认序号:指出接收方希望收到对方下次发送数据的第一个字节的序号。与序号是对应的,服务端对客户端发来的数据包进行确认。URG位:紧急标志,和紧急指针配合使用,当其为1时,表示此报文要尽快发送。ACK位:确认...原创 2019-12-25 19:03:01 · 134 阅读 · 0 评论 -
linux内核驱动编写,读取网络数据包,加载到设备文件
作用:编写linux内核驱动程序,驱动程序读取网络数据包,对数据包进行解析,将tcp五元组加载到设备文件中,对设备文件数据进行读取写入到临时文件。读取tcp数据包源码://print_tcp.c#include <linux/module.h>#include <linux/netfilter.h>#include <linux/netfilt...原创 2019-12-20 10:17:30 · 1136 阅读 · 1 评论 -
第十篇:UDP协议
传输层主要有两个协议:UDP协议和TCP协议。TCP和UDP有哪些区别呢?TCP是面向连接的,而UDP是面向无连接的。什么叫面向连接,什么叫无连接呢?在互通之前,面向连接的协议会先建立连接。例如,TCP会三次握手,而UDP不会。为什么要建立连接呢?建立连接是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的...原创 2019-12-09 16:57:01 · 237 阅读 · 0 评论 -
第九篇:路由协议
路由器就是一台网络设备,它有多张网卡。当一个入口的网络包送到路由器时,它会根据一个本地的转发信息库,来决定如何正确地转发流量。这个转发信息库通常称为路由表。一张路由表中会有多条路由规则。每一条规则至少包含这三项信息。1、目的网络:这个包想去哪儿?2、出口设备:将包从哪个口扔出去?3、下一跳网关:下一个路由器的地址。比如:ip route add 10.1...原创 2019-12-09 15:08:13 · 215 阅读 · 0 评论 -
第八篇:网关与路由
MAC头数据格式:包含了目的MAC地址,源MAC地址,协议类型一般为IP协议类型。最主要的是源IP与目标IP。同一个局域网中的两台设备进行数据传输时,直接先使用ARP协议找到目标MAC地址,组成数据包之后,在局域网中传输即可。如果不是同一网段的,就需要先把数据发送到网关gateway,网关的地址与源IP地址是一个网段的,一般是第一个或者第二个。如192.1...原创 2019-12-02 18:43:12 · 992 阅读 · 0 评论 -
第七篇:ICMP与ping
ICMP报文在第三层,封装在IP包里。ICMP报文有很多的类型,不同的类型有不同的代码。ICMP查询报告报文:类型为8代表请求报文类型为0代表应答报文代码为0:无论请求报文还是应答报文,代码都为0上图为ICMP请求,type为8,code为0,描述信息为ICMP Echo request上图为应答,Type为0,Code为0,描述信息...原创 2019-11-21 18:21:27 · 1103 阅读 · 0 评论 -
第六篇:交换机与VLAN
先来看一个简单的拓扑结构:两台交换机连接着三个局域网,每个局域网上都有多台机器。如果机器1只知道机器4的IP地址,当它想要访问机器4,把包发出去的时候,它必须要知道机器4的MAC地址。机器1发起广播,机器2收到这个广播,但是这不是找它的,交换机A收到广播后,它需要把包转发到其他口,交换机B收到数据包之后,也继续转发,最终,机器4收到包之后,发现是找它的,回复个MAC地址。这就是一个ARP请...原创 2019-11-18 10:56:07 · 272 阅读 · 0 评论 -
第五篇:从物理层到MAC层
第一层:物理层两台电脑如何组建一个局域网:电脑直接连电脑,然后配置IP地址,子网掩码、默认网关,配置成同一个网络内的,这两台机器就可以通了。两台电脑之间的网络包,包含MAC层吗?答:当然包含,要完整。IP层要封装了MAC层才能将包放入物理层。那么三台电脑如何连在一起呢?答:交换机,再早以前用集线器(Hub),它有多个端口,集线器它没有大脑,完全在物理层工作。它会...原创 2019-10-29 19:25:44 · 756 阅读 · 0 评论 -
第四篇:DHCP协议分配IP
有两台机器通过交换机连接在一起,其中一台的IP是192.168.1.111,另一台的IP是192.168.1.112,此时192.168.1.111向192.168.1.112发包是可以接收到的。但如果我将192.168.1.111的IP改成16.158.23.6,这个时候,再通过16.158.23.6向192.168.1.112发包,会怎么样?答:不会出现任何现象,包发不出去。Lin...原创 2019-10-17 17:02:49 · 596 阅读 · 0 评论 -
第三篇:IP地址解析
五类IP地址:打比方的话,网络号相当于小区号,主机号相当于楼栋号。A、B、C三类地址所包含的主机数量:C类地址的主机数太少,只有254个;A类地址主机数又太多。10.100.122.2/24IP地址中有一个斜杠,斜杠后面有个数字24.这种地址表示形式,就是无类型域间选路(CIDR)。32位地址中,前24位是网络号,后8位是主机号。10.100....原创 2019-10-16 16:27:18 · 6723 阅读 · 0 评论 -
第二篇:网络分层
网络为什么要分层?因为网络是个复杂的程序,处理网络包的程序可以跑在电脑上,可以跑在服务器上,可以跑在交换机上,也可以跑在路由器上。每一个层拿到网络包之后,都会进行处理,然后发送出去。所以就需要分成很多层,每层做自己的事。以上图的流程为例。浏览器客户端向服务器发送HTTP请求。1、首先,数据包在应用层进行封装,包好了HTTP头,HTTP正文,发送给运输层(TCP)。...原创 2019-10-15 15:14:56 · 244 阅读 · 0 评论 -
第一篇:浅析网络数据包发送流程
网络中,数据包从客户端到服务端是通过特定方式传输的,也涉及到各种协议,下面以某宝购物为例,简述一下网络中数据包发送流程。某宝购物系统流程:1、输入网址www.xxxx.com,DNS协议进行解析,找到对应的IP地址x.x.x.x。2、浏览器一般是HTTP协议,或者HTTPS协议。客户端浏览器打包HTTP请求。DNS,HTTP,HTTPS为应用层。经过应用层封装后,浏览器会...原创 2019-10-15 12:46:59 · 2701 阅读 · 0 评论