一、
TCP和UDP的区别:
1、udp不一定提供可靠的数据传输,该协议不能保证数据准确无误地到达目的地;
2、tcp的目的是提供可靠的数据传输,并在相互进行通信的设备或服务之间保持一个虚拟连接;
3、tcp在数据包接收无序,丢失或在交付期间被破坏时,负责数据的恢复;
4、tcp面向连接,如打电话要先拨号建立连接而udp则是无连接的,即发送数据之前不需要建立连接。
5、TCP要求系统资源较多,UDP较少。
6、TCP首部开销20字节;UDP的首部开销小,只有8个字节。
TCP和UDP的联系:
1、tcp和udp都是运输层协议;
2、都是建立在ip之上的 TCP叫做流式套接字,UDP是报文套接字
二、网络字节序与主机字节序的转换函数实践
1、什么是字节序?
字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。
2、字节序分类
大端字节序和小端字节序:
大端字节序存储时值的高位存储在较小的地址,值的低位存储在较大的地址。
小端字节序存储时值的高位存储在较大的地址,值的低位存储在较小的地址
3、网络字节序
网络字节序转化为主机字节序时,一定要注意是否需要转换。网络字节序是确定的。
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big-endian(大端)排序方式。
4、转换函数
为了进行转换 bsd socket提供了转换的函数 有下面四个
htons把unsigned short类型从主机序转换到网络序
htonl 把unsigned long类型从主机序转换到网络序
ntohs 把unsigned short类型从网络序转换到主机序
ntohl 把unsigned long类型从网络序转换到主机序
在使用little endian的系统中 这些函数会把字节序进行转换
在使用big endian类型的系统中 这些函数会定义成空宏
标签:UDP,转换,字节,主机,网络,TCP From: https://www.cnblogs.com/zjqdb/p/16773601.html