1. 区别
(1)TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务;
(2)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,
无 须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;
(3)也正因为以上特征,UDP具有较好的实时性,工作效率较TCP协议高;(1)TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务;
(2)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,
无 须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;
(4)UDP段结构比TCP的段结构简单,因此网络开销也小。
2. TCP的三次握手
有人这样形像比如:
某男生心仪一美女,于是向她表白(第一步),女方听后,想了想他的表现,考虑清楚后觉得还行,就答应了他(第二步),男生无比兴奋的说道,以后你就是我女朋友了啊!(第三步)
我个人觉得虽然不懂这其中具体的步骤是什么样的,但他这样讲感觉有个印象也好,后面有时间再多多了解。
基本流程图可以用下图表示:
3.TCP的四次断开
三次握手可以那样理解,四次断开当然也就不难想象了。
原本的一对情侣,由于感情不和,女生对男生说:“我们分手吧!”(第一步)
男生一听,脾气就来了,说:“分手就分手”(第二步)。 过后越想越不对,怎么是你先提出分手啊?!我一个大老爷们被你甩?!太没面子了!应该是我提出分手才对啊!于是又对女生说“我们分手吧”!(第三步) 于是有了新恋情的女生很无语的说了句:“神经病!”(第四步)
基本流程图
4.
TCP编程的服务器端一般步骤是:
1.创建一个socket,用函数socket();
2.设置socket属性,用函数setsockopt(); * 可选
3.绑定IP地址、端口等信息到socket上,用函数bind();
4.开启监听,用函数listen();
5.接收客户端上来的连接,用函数accept();
6.收发数据,用函数send()和recv(),者read()和write();
7.关闭网络连接;
8.关闭监听;
TCP编程的客户端一般步骤是:
1.创建一个socket,用函数socket();
2.设置socket属性,用函数setsockopt();* 可选
3.绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4.设置要连接的对方的IP地址和端口等属性;
5.连接服务器,用函数connect();
6.收发数据,用函数send()和recv(),或者read()和write();
7.关闭网络连接;
UDP编程的服务器端一般步骤是:
1.创建一个socket,用函数socket();
2.设置socket属性,用函数setsockopt();* 可选
3.绑定IP地址、端口等信息到socket上,用函数bind();
4.循环接收数据,用函数recvfrom();
5.关闭网络连接;
UDP编程的客户端一般步骤:
1.创建一个socket,用函数socket();
2.设置socket属性,用函数setsockopt();* 可选
3.绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4.设置对方的IP地址和端口等属性;
5.发送数据,用函数sendto();
6.关闭网络连接;