第二次总结

2017-01-18  本文已影响0人  joyyou陈嘉

1.Unix第二章

UDP(用户数据报协议):

简介:UDP是一个简单的传输层协议,程序往进程一个UDP套接字写入一个消息,改消息随后被分装得到一个UDP数据报,UDP数据报又被封装成一个IP数据报。

优点:UDP属于无连接型协议,因此有资源消耗小,处理速度快等优点。

缺点:UDP缺乏可靠性,UDP不保证数据报会到达目的地,也不保证先后顺序,也不保证只到达目的地一次。

TCP(传输控制协议):

简介:TCP客户先与某个给定的服务器建立连接,利用这个连接进行交换数据,然后关闭该连接。

建立一个TCP连接需要3次握手,关闭一个TCP连接需要4次握手

优点:

1.可靠性,有序性:TCP向另外一段发送数据的时候,要求对端返回一个确认,如果没有收到确认,    TCP就自动重传该消息,后面的消息则不会发,在规定时间内一直没有成功,则关闭这个连接, 保证的有序性。

2.流量控制:TCP告知对面在任何时刻他一次能够从对端接受多少字节的数据,发送多少数据,则接受多少数据。

3.全双工:在给定的一个连接的双方都能相互的收发数据。

SCTP(流控制协议):

简介:SCTP提供的服务像UDP与TCP综合,SCTP中使用“关联”取代“连接”,连接是指2个IP地址之间的通信,关联是2个系统之间的一次通信。

建立一次关联需要4次握手,关闭一个关联需要3次握手。

优点:

1.多宿性:sctp端点能够支持多个ip地址,建立多个关联,关联之间互不影响。

2.流内有序性:在同一个流传递的消息具有有序性,不在同一个流的消息不具有有序性。

缺点:

思考:sctp是否会代替tcp协议?

Unix第三章字节排序函数

内存中有2个方法存储,一种是小端:将低序字节存储在起始地址,一种是大端:将高序字节存储到起始地址。我们公司服务器用的是小端。

网络字节序:是TCP/IP中规定的一种数据表示格式,与具体的CPU,操作系统无关,从而保证数据在不同主机之间的传输能够被正确的解释。网络字节序是采用大端的排序方式。

主机字节序:是数据在主机的存储方式,存储方式有大端和小端2种方式。

网络字节序和主机字节序的相互转化:

htons把unsigned short类型从主机序转换到网络序。

htonl把unsigned long类型从主机序转换到网络序。

ntohs把unsigned short类型从网络序转换到主机序。

ntohl把unsigned long类型从网络序转换到主机序。

int inet_aton(const char* strptr, struct

in_addr * addrptr)将C字符串转化成32位的网络字节序二进制值,并用addrptr存储。

in_addr_t inet_addr(const char * strptr)与上面一样,但是不能处理255.255.255.255,如今已经废弃。

char *inet_ntoa(struct in_addr inaddr)将32位的网络字节序二进制值转化成字符串。

字节流套接字上调用read和write输入和输出字节数可能比请求的数量少,是因为内核中用户套接字的缓冲区达到极限,需要再起调用read和write继续读取数据。

上一篇下一篇

猜你喜欢

热点阅读