目录
第二章 用电信号传输TCP/IP数据(探索协议栈和网卡)
一、创建套接字
1. 协议栈的内部结构
协议栈的上半部分有两块,分别是负责用TCP协议收发数据的部分和负责用UDP协议收发数据的部分,它们会接受应用程序的委托执行收发数据的操作。像浏览器、邮件等一般的应用程序都是使用TCP收发数据的,而像DNS查询等收发较短的控制数据的时候则使用UDP。下面一半是用IP协议控制网络包收发操作的部分,网络包发送给通信对象的操作就是由IP来负责。ICMP用于告知网络包传送过程中产生的错误以及各种控制消息,ARP用于根据IP地址查询相应的以太网MAC地址。IP下面的网卡驱动程序负责控制网卡硬件,而最下面的网卡则负责完成实际的收发操作,也就是对网线中的信号执行发送和接收的操作。
2. 套接字的实体就是通信控制信息(或者说存放控制信息的内存空间就是套接字的实体),协议栈是根据套接字中记录的控制信息来工作的,这也就是套接字的作用。Windows中可以用netstat命令显示套接字内容: