协议栈和网卡的相关知识
问题代入
- 什么是协议栈?
- 协议栈的内部结构是什么?
- 协议栈是如何配合网卡进行数据收发的?
- 什么协议控制网络包,网络包的大小为多少?
- 协议栈是根据什么工作的?
- Socket 库是做什么的?它和协议栈的关系是什么?
- 连接的本质是什么?
- 数据包的内部结构什么?
涉及到的基本概念
- IP (Internet Protocol, 网际协议:负责网络包的收发;
- ICMP(Internet Control Messages Protocol, 网际控制报文协议):用于告知网络包在传输过程中
产生的错误
和各种控制消息
; - ARP(Address Resolution Protocol, 地址解析协议):用于根据 IP 地址查询相应的
以太网 MAC 地址
; - MAC(Medium Access Control,媒体访问控制 | 物理地址 | 硬件地址)
- 连接的本质:连接的本质实际上就是通信双方
交换控制信息
。
TCP/IP的分层结构
[图片上传失败...(image-4ec95d-1527241606743)]
TCP/IP软件采用分层结构上层会向下层逐层委派任务
协议栈的内部结构
协议栈是根据 ==套接字 中记录的 控制信息== 来进行工作的。如下图所示:
[图片上传失败...(image-6623d4-1527241606743)]
[ 套接字的内容信息如上图所示,每创建一个套接字就会在记录中增加一行 控制信息,并赋予其等待通信的连接状态(LISTENING) ]
网友评论