这是我参与更文挑战的第11天,活动详情查看: 更文挑战
一、ARP协议
地址解析协议
1.1 IP地址与MAC地址
- MAC地址是数据链路层和物理层使用的地址
- IP地址是网络层和以上各层使用的地址
1.2 ARP地址解析协议
基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。将IP地址转化为物理地址。不过再IPv6已不再使用,并被邻居发现协议(NDP)所替代。
1.3 ARP工作机制
报文格式
以太网传输层
在每台安装有TCP/IP协议的电脑或路由器都有一个ARP缓存表,表中的IP地址和MAC地址是一一对应的,如下表所示。
在主机A要向区域网上某个主机B发送IP数据报时,就先在其ARP高速缓存中查找有无主机B的IP地址。
-
如果有,就在ARP高速缓存中查出其对应的硬件地址,再把其硬件地址写入到MAC帧,然后通过区域网把改MAC帧发往此硬件地址。
-
如果没有,则:
-
ARP进程在本局域网发送一个ARP请求分组
-
本区域网上所有主机运行的ARP进程都收到此ARP请求分组
-
主机B在ARP分组中见到自己的IP地址就向A发送ARP响应分组,并写入自己的硬件地址,响应分组是普通的单播。
-
主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射
-
另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)。
-
二、TCP三次握手和四次挥手
1. 三次握手
2. 四次挥手
三、HTTP和HTTPS区别
- http:超文本传输协议,https:安全套接字超文本传输协议
- https在http的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并未浏览器和服务器之间的通信加密
- https协议需要到CA申请证书
- http端口:80,https端口:443
https协议主要作用:
(1)建立一个信息安全通道,来保证数据传输的安全;
(2)确认网站的真实性
四、get和post区别
-
最直观的区别:get参数包含在url中,post则通过request body传递参数
-
本质:都是tcp链接,并无差别。但是由于http的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同
-
最重要的区别:get产生一个tcp数据包,而post产生两个tcp数据包
- 对于get方式的请求,浏览器会吧http header和data一并发送出去,服务器响应200(返回数据)
- 对于post,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
并不是所有的浏览器都会在post中发送两次包,Firefox就只发送一次
五、TCP和UDP区别
UDP 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等
TCP 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的传输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。