HTTP、TCP、UDP、Socket

本文详细介绍了网络五层协议的概念及工作流程,包括应用层、传输层、网络层、数据链路层和物理层的功能与作用。重点阐述了HTTP、TCP/UDP协议的特点及其在网络传输中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 首先说下网络5层协议:应用层、传输层、网络层、数据链路层、物理层。

2. Http: 属于应用层协议,封装对数据的描述

请求行:get/post

消息包头:包括客户端的一些信息(浏览器一些信息、user-agent……

消息正文:请求参数

HTTP允许传输任意类型的数据对象。类型由Content-Type加以标记。

3. TCP/UDP:属于传输层协议,描述了Http里面的数据怎么在网络上传输

TCP:每次请求都会建立一个tcp连接,3次握手,请求完成后释放连接。可靠传输,没有大小限制,但速度较慢。

UDP:不可靠传输,数据不能超过64k,速度较快。可以利用丢包重发机制来提高UDP的可靠性。

4. Socket是在应用层和传输层的抽象

所有对tcp的操作都封装在socket里面

ps:  
    1、TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽 ,因此TCP传输的效率不如UDP高。 


    2、UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。 

在源主机上,应用层将一串应用数据流传送给传输层

简单说下5层协议工作流程:


●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。


●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。


●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。


●在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。


●网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。


●传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。


●在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值