TCPIP网络编程第二章读书笔记

第二章 套接字类型与协议设置

2.1 套接字协议及其数据传输特性

协议:对话中的使用规则,为了数据交换而定好的约定

创建socket函数中的参数包括domain(协议族),type(传输类型),protocol(具体协议)

在指定的协议族范围内通过第一个参数选择第三个参数,协议族中可能存在多种传输方式,最具代表性的两种是:

1.面向连接的套接字(SOCK_STREAM)

本书以传送带运输糖果比喻面向连接的套接字传输数据的过程,这过程中有三个特征:

传输过程中数据不会消失:通过独立的传送带,只要传送带本身没问题,就能保证数据不丢失

数据按序传输:传送带上的货物顺序不会改变

数据不存在数据边界:收发数据的套接字内部有缓冲(字节数组),收到数据不意味着必须马上调用read函数,只要缓冲不满,read的次数不确定,所以面向连接的套接字不存在数据边界,当缓存满了之后,数据也不会丢失,而是停止传输。

同时套接字连接必须一一对应,并且特性相同,面向连接的套接字是可靠的、按序传递的、基于字节的。

2.面向消息的套接字

本书以摩托车快递或者外卖的运输方式比喻面向消息的套接字传输数据的过程,特征有:

强调速度而非传输顺序

传输的数据可能丢失损毁

有数据边界

限制每次传输数据的大小

总的来说,面向消息的套接字是不可靠的,不按序传递的,以数据的高速传输为目的的。另外,面向消息的套接字不存在连接的概念。

而protocol参数决定最终的协议,同一协议族中,数据传输类型确定的协议也可能有多个,所以还需要最后的确定。

 

posted @ 2022-06-10 17:26  clara-zhang  阅读(37)  评论(0)    收藏  举报