套接字相当于电话机,IP地址相当于总机号码,端口号相当于分机号码
windows socket api->即套接字(socket)是应用层到传输层的接口;
套接字作为应用层与传输层的接口是因为应用层具有以下几方面的特点:
(1)应用层处理应用程序的细节,而不必知道通信细节。TCP/IP模型中应用层下面的3层不必知道应用程序的细节,但能处理所有的通信细节。
(2)通常应用层形成用户进程,而TCP/IP模型中下面3层通常作为操作系统内核的一部分。
数据封装:
当主机跨越网络向其他设备传输数据时,就要进行数据封装,就是在OSI模型的每一层加上协议信息。每一层只与接受设备上相应的对等层进行通信。
为了实现通信并交换信息,每一层都使用协议数据单元(ProtocolDataUnits,PDU)。在模型中的每一层,这些含有控制信息的PDU被附加到数据上。他们通常被附加到数据字段的报头中。但它们也可以附加在数据字段的报尾中。
在OSI模型的每一层,通过封装使每个PDU被附加到数据上,而且每个PDU都有特定的名称(物理层:比特流;链路层:数据帧;网络层:数据包;传输层:数据段;)其名称取决于在每个报头中所提供的信息。这种PDU信息只能由接收方设备中的对等层读取,在读取之后,报头就被剥离,然后把数据交给上一层。
在发送方设备中,数据封装过程如下:
1.将用户信息转换为数据,以便在网络上传输。(应用层、表示层)
2.将数据分割成数据段,提供端到端的服务,并在发送方和接收方主机之间建立一条可靠的连接。(传输层)
3.将数据段封装成数据包或数据报,并且在报头中放上逻辑地址,这样,每个数据包都可以通过互联网进行传输。 (网络层)
4.将数据包或数据报封装成帧,以便在本地网络中传输。在本地网段上,使用硬件(以太网)地址唯一表示每一台主机。(数据链 路层)
5.将数据帧编码为比特流(采用数字编码和时钟方案),并以此方式在网上传输。(物理层)
![](https://img-blog.csdn.net/20131020153312796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3NsczE4MTcxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20131020153251781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3NsczE4MTcxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)