<网络是怎样连接的>看书笔记第二章 用电信号传输TCP/IP--探索协议栈和网卡
2.1创建套接字
2.1.1协议栈的内部结构
浏览器丶邮件等一般应用程序收发数据时用TCP;DNS查询等收发较短的控制数据时候用UDP
2.12套接字的实体就是通信控制信息
在协议栈的内部有一块用于存放控制信息的内存空间,这里记录了用于控制通信操作的控制信,例如通信对象的IP地址丶端口号丶通信操作的进行状态等. 本来套接字就不存在实体,如果一定要赋予它实体的话,我们可以说这些控制信息就是套接字的实体,或者说存放控制信息的内存空间就是套接字的实体.
协议栈是根据套接字中记录的控制信息来工作的.
套接字内容:如图 图中只显示了部分内容
2.1.3调用socket时的操作
创建套接字时,首先分配一个套接字所需的内存空间,然后向其中写入初始状态
2.2连接服务器
2.21 连接是什么意思
话说,以太网的网线都是一直连接状态,我们并不需要拔插网线,那么连接是什么意识呢?
答:连接实际上是通信双方交换控制信息,在套接字中记录这些必要信息并准备数据收发的一连串操作,在讲解具体过程之前,我们先来说一说
"连接"到底是什么意思.
因为浏览器知道通信对象的信息(端口号 IP等信息),但是在调用socket创建套接字的时候这些信息并没有传递给协议栈.因此,我们需要把服务器的IP地址和端口号等信息告知协议栈,这是连接操作的目的之一
客户端向服务器传达开始通信请求,也是连接操作的目的之一.
控制信息:就是用来控制数据收发操作所需的一些信息,IP地址和端口号就是典型的列子.
补充:当执行数据收发操作时,我们还需要一块用来临时存放要收发的数据的内存空间,这块内存空间称为缓冲区,他就是在连接操作的过程中分配的.