TCP,UDP,Socket和HTTP

计算机网络中学过,网络由下往上分为:物理层,数据链路层,网络层,传输层,会话层,表示层应用层。


TCP 即Transmission Control Protocol,传输控制协议
UDP 即User Data Protocol,用户数据报协议


而各层对应的协议如下图





可以看出,IP协议对应于网络层TCP协议UDP协议对应于传输层,而HTTP协议对应于应用层


Socket是对TCP/IP协议等的封装和应用,Socket本身并不是协议,而是一个调用接口(API),通过Socket我们才能使用TCP/IP协议。TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口,这就像操作系统会提供标准的编程接口,比如Win32编程接口。TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。


TCP/IP协议主要解决数据如何在网络中传输,而HTTP协议主要解决如何包装数据。



TCP协议的三次握手


第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即

          SYN+ACK包,此时服务器进入SYN_RECV状态; 


第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和

          服务器进入ESTABLISHED状态,完成三次握手。 


握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过四次握手。



TCP协议与UDP协议的区别(犹如打电话和发短信的区别)


首先我们要知道TCP协议是一种面向连接服务的协议,而UDP协议是一种无连接服务的协议。


面向连接服务的特点:数据传输前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。


无连接服务的特点是:无连接服务只有传输数据阶段。消除了除数据通信外的其它开销。只要发送实体是活跃的,无须接收实体也是活跃的。它的优点是灵活方便、迅速,特别适合于传送少量零星的报文,但无连接服务不能防止报文的丢失、重复或失序。


知道了TCP协议和UDP协议的区别,就不难理解为何采用TCP传输协议的MSN比采用UDP协议的QQ传输文件慢了,但不能说QQ通信是不安全的,因为可以手动对UDP数据的收发进行验证。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值