网络协议解释篇
ARP协议
- ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。使用地址解析协议后,计算机可根据网络层IP数据包包头中的IP信息对应目标硬件地址(MAC地址)信息,以保证通信的正常进行。将IP地址解析成MAC地址。

ARP工作流程
- ARP工作过程分为两个阶段:ARP请求过程,ARP响应过程
- 每个主机都会在自己的ARP缓冲区建立一个ARP缓存表,表示IP地址和MAC之间的对应关系。
- 当A要发送数据时,首先检查ARP缓存表中是否有B的IP地址对应的MAC地址,如果有则直接发送,如果没有就向本网络的所有主机发送ARP数据包.
- 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出A的IP和MAC地址写入到ARP列表中;然后将自己的MAC地址写入到ARP响应包中,告诉A自己是它想找的MAC地址。
- A收到ARP响应包后,将B的IP和MAC地址写入ARP列表中,并利用此信息发送数据。如果A一直没有收到响应包,则表示ARP查询失败。
ARP缓存表
- ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的MAC地址。在ARP缓存中的每个表又被称为ARP缓存表。
互联网协议(IP)
- 互联网协议地址(Internet Protocol Address),缩写IP地址。
IP地址
- IP地址是IP协议提供的一种统一的地址格式。它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址间的差异。IP地址分为IPv4(IP协议的第四版)和IPv6(IP协议的第六版)两大类。在IPv4版本中规定该地址是由32个二进制位构成,32位不好记,所以IP采用点分四组的表示法。分为转换为十进制0~255之间的数。
- IP地址由网络地址和主机地址构成,网络地址:标识设备所连接的局域网;主机地址:标识该网络中的设备本身。
UDP协议
什么是UDP协议
- UDP(User Datagram Protocol,用户数据报协议),UDP协议是一种无连接的协议。UDP的主要作用:将网络数据流量压缩成数据包的形式。
UDP协议特点
- UDP协议是一个无连接协议,即通信时不需要创立连接(不需要三次握手)。
- UDP可一对多、多对多、多对一、一对一的交互通信。
- UDP信息包标题短(简单),只有八个字节,相对于TCP的20个字节信息包的额外开销很小。
- UDP使用最大努力交付,即不保证可靠交付,因此主机不需要维护复杂的连接状态。
- UDP是面向报文的,对应用层传输下来的报文添加首部后,就向下传送给IP层。
- UDP无堵塞控制,网络堵塞也不影响发送端的发送频率。
- 不可靠(容易丢包)。
TCP协议
- TCP(Transmission Control Protcol,传输控制协议)是一种面向连接的、可靠的、基于IP的传输层协议。为数据提供可靠的端到端的传输。
TCP端口
- TCP端口就是为TCP协议通信提供服务的端口,所有TCP通信都会使用源端口和目的端口,而这些可以在每个TCP头中找到。
- TCP的重要控制位:
- syn:请求建立连接
- fin:请求断开连接
- ack:确认控制字段,表示接受的数据进行确认(从而实现了TCP协议的可靠性)
TCP的三次握手


- 数据传输过程中:每发送一次数据,都会产生ACK(表示收到了对方seq对应的信息),ack(表示确认收到),seq(请求序列号)
TCP四次挥手

ICMP协议
- ICMP(Internet Control Message Protocol,互联网控制报文协议),是一种面向无连接的协议,用于传输出错报告控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
- 从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况,也能确保连线的准确性。当路由器在处理一个数据包的过程中发生了意外,就可以通过ICMP向数据包的源端报告有关事件。

DHCP协议
- DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,主要作用是集中的管理、分配IP地址。
DHCP工作流程

- 为了动态获取并使用一个合法的IP地址,需要经历以下几个阶段:
- 发现阶段:即DHCP客户端寻找DHCP服务器的阶段。
- 提供阶段:即DHCP服务器提供IP地址的阶段。
- 请求阶段:即DHCP客户端请求某台DHCP服务器提供的IP地址的阶段。
- 确认阶段:即DHCP服务器确认所提供的IP地址的阶段
DNS协议
- DNS(Domain Name System,域名系统)是一种可以将域名和IP地址相互映射的数据库系统。将可读的URL转化为机器可读的IP地址。

HTTP协议
- HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议,HTTP是万维网的数据通信的基础。

HTTP请求方法
- GET(完整请求一个资源)
- POST(提交表单)
- PUT(上传文件)
- DELETE(删除)
- PATCH
- HEAD(仅请求响应首部)
- OPTIONS(返回请求的资源所支持的方法)
- TRACE(追求一个资源请求中间所经过的代理)
GET和POST的区别
- GET做后退和刷新时没有什么变化,它是无害的;POST数据就会被重新递交
- GET可以被收藏为书签,POST不可能被收藏为书签;
- GET请求可以被浏览器缓存,POST请求不能被浏览器缓存
- GET请求的编码类型是:application/x-www-form-urlencoded,POST是:multipart/form-data(对二进制数据使用多重编码)
- 历史记录中,GET参数会保留在历史记录,POST不会
- GET有数据长度限制,发送数据时GET方法会向URL添加数据,URL的长度是受限制的,限制为2048个字符,POST没有限制
- 对字符的限制:GET只允许ASCII字符,POST没有限制
- 安全性上:与POST相比,GET安全性比较差,因为GET所发送的数据是URL的一部分,不能发送敏感信息
- 可见性上:GET数据在URL中对所有人可见,POST不会显示在URL中