概述TCP/IP
TCP/IP不是传输层协议,而是网络通讯协议,它包括许多协议。
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。
TCP/IP特点:
使用于互联网, 统一地址分配标准化高层协议。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
—————————————————————————————————————
UDP
1)无连接的数据包服务,一方向另一方发送数据不需要建立连接。相当于发短信,别人是否收到,短信信息是否丢失都不能知道。
2)面向报文的,从上层接收的数据如果报文不大于传输限制,则直接加上首部传输,如果报文过大,则进行IP分片后,再分别加入首部进行传输。
3)UDP协议可以一对一通信,同时可以一对多通信(用于广播)。
4)UDP仅仅是尽最大的努力进行交付,只是做比较初级的检查,比如端头检查,差错检测,往往在传输过程中会出现分组丢失、乱序、重复传输等问题。
TCP
1)面向连接的可靠的传输控制协议,连接的建立需要三次握手,连接的释放需要进行四次握手才能保证连接的建立,数据的同步传输。
2)面向字节流,会把从上层传输下来的数据当作是无结构的字节流。
3)一对一的通信。
4)TCP在IP协议的基础之上添加了序号机制,确认机制,超时重传机制,数据校验,从而保证传输的可靠性,同时保证不出现丢失或者是乱序。
—————————————————————————————————————
TCP与UDP基本区别
1.基于连接与无连接
2.TCP要求系统资源较多,UDP较少;
3.UDP程序结构较简单
4.流模式(TCP)与数据报模式(UDP);
5.TCP保证数据正确性,UDP可能丢包
6.TCP保证数据顺序,UDP不保证
UDP编程:
与之对应的UDP编程步骤要简单许多,分别如下:
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、关闭网络连接;
—————————————————————————————————————
另外,说一下视频传输协议
RTSP/RTP/RTCP协议族
该协议族是最早的视频传输协议。其中RTSP协议用于视频点播的会话控制。该协议族RTSP是建立在TCP之上的,RTP、RTCP建立在UDP之上。
RTMP
这个是adobe公司自己推出的视频播放协议。需要专用的服务器,如FMS,开源的有red5.这种协议也是flash默认支持的。
理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了。
图片.png—————————————————————————————————————
网友评论