TCP/IP与HTTP详解

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

TCP/IP是以IP和TCP协议为核心的一整套网络协议的总称,所以有时候我们也称其为TCP/IP协议簇。毫不夸张地说,TCP/IP支撑着整个互联网,因为它就是互联网采用的网络协议。TCP/IP协议簇划分为如右图所示的4个层次[2](应用层、传输层、网络层和链路层),构成整个协议簇的各个子协议处于相应层次中。

既然将整个协议簇命名为TCP/IP,那么IP和TCP自然就是其中最为核心的两个协议了。处于网络层的IP协议提供的IP数据报传输是不可靠的,因为它只承诺尽可能地将数据报发送出去,但不能保证发送的数据报能够成功地抵达目的地。IP协议的不可靠性还体现在它不能检测数据在传输过程中是否发生了改变,也就是说数据的完整性得不到保证。IP协议是一个无连接(Connectionless)的网络协议,每次数据报的处理对它来说均是独立的,因此IP协议也不能提供针对有序传输(数据接收的顺序与发送的顺序一致)的保证。

虽然IP协议只能提供不可靠的数据传输,同时有序传输也得不到保证,但是建立在它之上的传输层协议TCP有效地解决了这两个问题。TCP是一个基于连接的协议,数据交换双方在进行报文传输之前需要建立连接,报文传输结束之后需要关闭连接。这是一个双工(Duplex)连接,数据交换的双工均可以利用它向对方发送数据。

TCP利用“接收确认”和“超时重传”机制确保了数据能够成功抵达目的地。具体来说,接收方在成功接收到数据之后会回复一个确认消息。发送方在本地具有一个存放尚未得到确认的已发消息的缓冲区,如果发送方在一个设定的时限内没有接收到针对某个已发报文的确认消息,它会从该缓存区中选择对应的报文进行重新发送。在接收到确认之后,相应的报文会从缓存区中移除。

为了解决有序传输的问题,发送方会为每个报文进行编号,报文的序号体现了它们被发送的顺序。接收端在接收到某个报文之后,它会利用此序号判断是否具有尚未成功接收的已发报文,如果有的话,该报文会被存放到本地的缓冲区中。等到之前发送的报文全部被接收之后,接收方按照序号对接收的报文依次向上(应用层)递交,成功递交的报文会被从缓存区中移除。除了接收到“失序”的报文之外,接收方还有可能接收到重复的报文,因为没有报文均具有一个唯一的序号,如果该序号小于已经成功递交或者添加到缓存区中的报文序号,它会被认为是重复接收的报文而被丢弃。

由于每个TCP报文段都具有一个16位的检验和(Checksum),所以接收方可以根据它确认数据在传输过程中是否被篡改。除此之外,TCP还提供了“流量控制”功能避免了双方因缓存区大小不一致而导致报文丢失。具体来说,如果发送方的缓冲区大于接收方的缓存区,会导致接收方在缓冲区已满的情况下无法处理后续接收的报文,所以接收方会将自己缓存区剩余的大小及时通知给发送端,后者据此控制报文发送“流量”。

HTTP(Hypertext Transfer Protocol),全称为“超文本传输协议”,是TCP/IP协议簇的一部分。从图1-1可以看出,这是一个位于应用层的网络协议,在它之下的就是TCP协议。由于TCP协议是一个“可靠”的协议,HTTP自然也能提供可靠数据传输功能。

IP协议利用IP地址来定位数据报发送的目的地,而利用域名系统(DNS)可以实现域名与IP地址之间的转换。TCP协议利用端口号标识应用程序,所以某个应用程序在使用TCP协议进行通信的时候必须指定目标应用的IP地址(或者域名)和端口号。HTTP默认采用的端口号为80,而HTTPS(利用TLS/SSL为HTTP提供传输安全保障)的默认端口号则为443,当然在网络可达的前提下,我们可以指定任意的端口。

(本文来源:http://www.weidianyuedu.com/,已做删减修改,版权归原作者所有。)

10、网络协议:TCP/IP、UDP HTTP 详解 本文详细介绍了TCP/IP、UDP和HTTP三种核心网络协议。内容涵盖协议的基本概念、工作原理以及实际编程实现。通过C语言示例展示了TCP和UDP的服务器-客户端通信流程,并探讨了read/writerecv/send的区别、TCP消息边界问题等关键技术点。文章还解析了HTTP协议的请求响应结构、常见状态码及应用场景。最后对三种协议进行了综合对比和优化扩展,帮助开发者更好地选择和使用网络协议。 阅读详情

相关推荐

TCP/IP协议、HTTP协议

TCP/IP协议、HTTP协议介绍

AsiaLYF 2万+

TCP/IPHTTP详解

计算机为了联网,就必须规定通信协议 为了将所有类型的计算机都连接起来,规定了全球通用协议。互联网协议簇(Internet Protocol Suite) 互联网上每个计算机有唯一标识的IP地址,IP地址对应的实际上是计算机的网络接口,通常是网卡。 一、IP协议 IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块,然后通过IP包发送出去。由于互联网链路复杂,两台计算机之间经常有多条线路,因此,路由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途径多个路由

frozen_memory的博客 1879

计算机网络-HTTPTCP/IP协议简介

一、HTTP 1.常见名词名称简介 LAN Local Area Network 局域网 WLAN Wireless Local Area Network 无线局域网 WAN Wide Area Network 广域网 MAC Media Access Control 网卡地址 CSMA Carrier Sense Multiple Access

m0_50275872的博客 9483

TCP/IP 协议、HTTP 协议和 FTP 协议详解

本文介绍了常见的网络协议主要包括TCP/IP协议、HTTP协议、FTP协议等。并详细介绍了TCP/IP协议的模型和HTTP网络协议及其请求包和响应包内容

青灯文案的博客 1万+

TCP/IP详解——HTTP 协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。HTTP工作在TCP协议的80端口上。

来日可期的博客 2608

TCP/IP协议Http协议的区别详解

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 关于TCP/IPHTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/I...

u011555996的博客 3885

详解TCP/IPHTTP

转自:微点阅读 https://www.weidianyuedu.com TCP/IP是以IP和TCP协议为核心的一整套网络协议的总称,所以有时候我们也称其为TCP/IP协议簇。毫不夸张地说,TCP/IP支撑着整个互联网,因为它就是互联网采用的网络协议。TCP/IP协议簇划分为如右图所示的4个层次[2](应用层、传输层、网络层和链路层),构成整个协议簇的各个子协议处于相应层次中。 既然将整个协议簇命名为TCP/IP,那么IP和TCP自然就是其中最为核心的两个协议了。处于网络层的IP协议提供的IP数..

ysds20211402的博客 162

TCP/IP协议HTTP协议区别SOCKET接口详解

网络由下往上分为: 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- TCP协议 会话层-- 表示层和应用层-- HTTP协议 socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可...

aoqijuan3585的博客 424

TCP/IPHTTP详解

转载自品略图书馆http://www.pinlue.com/article/2018/12/0620/567787318113.html TCP/IP是以IP和TCP协议为核心的一整套网络协议的总称,所以有时候我们也称其为TCP/IP协议簇。毫不夸张地说,TCP/IP支撑着整个互联网,因为它就是互联网采用的网络协议。TCP/IP协议簇划分为如右图所示的4个层次[2](应用层、传输层、网络层和链路层),构成整个协议簇的各个子协议处于相应层次中。 既然将整个协议簇命名为TCP/IP,那么IP和TCP自..

yihuliunian的博客 382

老 Mac 不再受苹果支持?用 OpenCore Legacy Patcher 免费跑上最新 macOS

一台 2012 年的 MacBook Pro 打开"系统设置",被告知无法再收到系统更新——换机还是将就,很多人卡在这里。OpenCore Legacy Patcher(OCLP)就是为这种情况准备的:这款免费开源工具能绕过苹果的硬件限制,让 2007 年之后的 Intel Mac 安装并运行 Big Sur、Monterey、Ventura、Sonoma 乃至 Sequoia,还支持正常接收空中

gitblog_00021的博客 870

详解websockethttpTCP/IP的三角恋

关于websocket,从它成为标准后就一直困扰我很久,它和http,tcp究竟有啥关系?套接字不都是tcp或者udp吗?它能和tcp服务器直接通讯吗?它要包含在http的请求里发送吗?它工作在计算机网络的哪一层?今天终于有机会细细地捋一下他们的关系了; 一、关于TCP/IP 学过计算机网络的人肯定都知道,tcp是传输层协议,当一个应用程序监听某个tcp端口后,它实际上就建立了一个套接字...

THMAIL的博客 793

Tcp/Ip协议中tcphttp详解

刚开始遇到别人问tcphttp的区别是什么?当时就想着他们都是网络通信协议, http(超文本传输协议):是一种请求/响应式的无状态链接,就是浏览器向服务器发送请求,服务器给浏览器反馈请求的数据 ,然后连接就自动消失了; tcp(传输控制协议):是一种浏览器向服务器发送一个连接请求,服务器允许连接,然后浏览再向服务器发送数据,如果服务器为接收到或接受的数据不完整,就会要求浏览器重新发送请求;

zy_x00的专栏 1104

深入理解HTTP协议TCP/IP协议:三次握手SYN、ACK详解

TCP/IP不是一个单一协议,而是一个协议族,是整个互联网通信的基础架构。如何在全球范围的网络中,将数据从一台计算机可靠地传输到另一台计算机。HTTP是构建在TCP/IP协议之上的应用层协议,是万维网数据通信的基础。关键原因:防止已失效的连接请求报文造成资源浪费客户端发送连接请求,但该请求在网络中滞留客户端重发请求并成功完成通信此时滞留的旧请求到达服务器如果是两次握手服务器会认为这是新的连接请求,直接建立连接并等待数据导致服务器资源被白白占用采用三次握手。

2503_92848527的博客 659

TCP/IPHTTP详解.

转自:http://www.pinlue.com/article/2018/12/0620/567787318113.html

Memory1011的博客 106

计算机网络核心协议分层模型详解:从TCP/IPHTTP的实战指南

计算机网络是现代信息技术的基石,其核心设计思想是分层模型,它通过将复杂的通信过程分解为多个独立的层次,实现了各层之间的解耦标准化。在众多网络协议中,TCP/IP协议族是互联网的事实标准,其中IP协议负责网络层的寻址路由,而TCP协议则在传输层提供可靠的、面向连接的数据传输服务,通过三次握手、确认应答和超时重传等机制确保数据完整有序。理解这些基础原理对于进行网络编程、服务部署和故障排查具有重要价值。在实际应用场景中,无论是微服务架构下的RPC调用,还是Web开发中的HTTP/HTTPS通信,亦或是数据库的

weixin_30905133的博客 306

OSI 七层 / TCP/IP 四层模型详解 + HTTP WebSocket 接口分类:从协议本质 到 设计规范

OSI 七层 / TCP/IP 四层模型详解 + HTTP WebSocket 接口分类:从协议本质、适用场景到设计规范

专注实用知识分享的一个务实的技术博客,聚焦 python等领域的干货分享 1361

计算机网络面试核心知识:TCP/IP协议HTTP/HTTPS详解

计算机网络作为现代互联网的基石,其核心在于协议栈的分层设计数据传输机制。从物理层的比特流传输到应用层的HTTP协议,TCP/IP四层模型通过分层解耦实现了网络通信的高效可靠。其中传输层的TCP协议通过三次握手建立可靠连接,并采用滑动窗口和拥塞控制算法保障数据传输质量;而应用层的HTTP/HTTPS协议则承载了web服务的核心交互,TLS加密握手过程确保了通信安全。理解这些协议原理不仅能帮助开发者进行网络故障排查(如Wireshark抓包分析),更是通过大厂技术面试的关键。根据Stack Overflow

weixin_30723433的博客 302
上一篇: 有网络连接,但浏览器不能上网怎么办?
下一篇: 在windows上实现java6和Java8共存解决办法
Memory1011
博客等级 码龄6年 52粉丝 1100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值