TCP,UDP,HTTP

参考:https://blog.csdn.net/u012439774/article/details/53634927

TCP/IP协议组:

网络层:IP, ICMP, ARP, RARP,BOOTP协议.
传输层:TCP, UDP.
应用层:FTP, HTTP, TELNET, SMTP, DNS等协议.
在这里插入图片描述
1.TCP
特点:
(1)面向连接的,可靠的字节流服务.保证接收方能完整正确地接收到发送方发送的全部数据.
(2)用于点对点通讯,通过三次握手建立连接.
(3)传输数据无大小限制,进行大数据传输.
连接三次握手:

第一次:客户端发送syn包(syn=j)到服务器,进入SYN_SEND状态,等待服务器确认;
第二次:服务器收到syn包,确认客户的syn(ack=j+1),同时发送一个syn包(syn=k),即syn+ack包,服务器进入SYN_RECV状态.
第三次:客户端收到syn+ack包,向服务器发送确认包ack(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.

断开连接时需要4次握手,发起方可能进入TIME_WAIT状态长达数分钟(视系统设置而定,windows一般为120秒),此状态下连接端口无法被释放.

TCP发送的包都是有序号的,并且接收方要给发送方一个反馈.当超过一定时间还没有收到反馈,就会自动执行超时重发.所以,TCP的最大优点是可靠.

2.UDP
特点:
(1)面向非连接的,非可靠的,不保证数据能够完整准确到达目的地.
(2)用于多点通讯和实时数据业务,如语音广播,QQ,TFTP,RTP,DNS,RIP,SNMP.注重速度.
(2)UDP数据包括目的端口号和源端口号信息,通讯不需要连接,可实现广播发送.
(3)传输数据有大小限制,被传输的数据报必须限定在64KB以内.
(4)发送的数据并不一定以相同的次序到达接收方.

3.TCP&UDP区别
(1) TCP:面向六字服,数据流无边界
UDP:面向分组,分组间有明确边界.

(2) TCP:是可靠的,通过数据校验保证发送和接收到的数据是一致的;
UDP:不可靠,需要自己做数据校验.

(3) TCP:数据有序,接收顺序同发送顺序;
UDP:数据无序,应用程序要自己做数据校验.

(4) TCP:耗时,适合传输数据
UDP:适合流媒体.

(5) UDP比TCP更容易穿越路由器防火墙.

4.HTTP
(1)Hypertext Transfer Protocol,建立在TCP协议之上的一种应用,使用"请求-响应"方式.
(2)请求时需要先建立TCP连接,其中
客户端请求包含请求方法,URI,协议版本,相关的MIME样式,服务器端才能回复数据.
服务器响应包含:协议版本,一个成功和失败码,相关MIME式样的消息.
(3)请求结束后都会主动释放连接,因此HTTP是一种"短连接".所以客户端会每隔一段固定时间向服务器发送一次"保持连接"的请求,服务器收到后立刻回复,以保证客户端程序的在线状态.
若服务器长时间无法收到客户端的请求,则认为客户端"下线";若客户端长时间无法收到服务器的回复,则认为网络已经断开.
(4)HTTP是应用层协议,其传输都是被包装成TCP协议传输.可用SOCKET实现HTTP.
SOCKET是实现传输层协议的一种编程API,可以是TCP,也可以是UDP.
缺点:
(1)传输速度慢,数据包大
(2)如实现实时交互,服务器性能压力大
(3)数据传输安全性差

也可以这样认为:TCP/UDP协议是传输层协议,主要解决数据如何在网络中传输.
HTTP是应用层协议,主要解决如何包装数据.
“TCP/IP与UDP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。
这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,
TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值