- 有了对TCP/IP协议族分层的了解,本地客户端在向服务器端发送相关请求时需要经过四层传达,分别是应用层,传输层,网络层以及链路层。TCP/IP协议族中的每个协议都在这四层当中的某一层起作用,http协议处于应用层,TCP协议处于传输层,IP协议处于网络层,各种相关硬件驱动、通信电缆,物理器件处于链路层。
- IP协议
IP协议的作用是传输数据包,一边中转一边送
IP协议不是IP地址
需要使用ADP协议获取对方IP地址的MAC地址
IP 间的通信依赖 MAC 地址
任何一台计算机或路由器都不能完全获知整个传输情况,这种情况被称为路由选择。 - TCP协议
TCP是为了保证更为可靠的传输
TCP协议的作用是将HTTP发来的大块数据分段成报文段形式的数据包进行更为方便的传输
TCP通过三次握手来加强传输的可靠性
第一次握手,由客户端(准确来说是发送端)向服务器端(准确来说是接收端)先发送一个带有SYN标志位的数据包
第二次握手,由接收端向发送端回传一个带有SYN/ACK标志位的数据包,以表示收到信息
第三次握手,发送端再回传一个带有ACK标志的数据包,代表握手结束
拓展问答:
为什么需要三次握手而不是2次或4次:
因为对于客户端client来说,发送的报文请求没有丢失,而是在网络中的某个中专节点被长时间的滞留了,延误到连接释放的某个时间到达服务器端server。这时候server会向client发送一个确认信息,假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。
这个问题的本质是, 信道不可靠, 但是通信双发需要就某个问题达成一致. 而要解决这个问题, 无论你在消息中包含什么信息, 三次通信是理论上的最小值. 所以三次握手不是TCP本身的要求, 而是为了满足"在不可靠信道上可靠地传输信息"这一需求所导致的. 请注意这里的本质需求,信道不可靠, 数据传输要可靠. 三次达到了, 那后面你想接着握手也好, 发数据也好, 跟进行可靠信息传输的需求就没关系了. 因此,如果信道是可靠的, 即无论什么时候发出消息, 对方一定能收到, 或者你不关心是否要保证对方收到你的消息, 那就能像UDP那样直接发送消息就可以了 - DNS协议
将便于人脑记忆的域名解析成相应的IP地址,然后发送端向此IP地址发送请求 - HTTP协议
HTTP协议是处于应用层的协议。主要的作用是形成报文请求 - URI解析
URI全称为uniform resources identifier,统一资源标识符,一般的我们熟悉的协议是URL(uniform resources locator)
URL与URI的区别在于:URI表示某个协议方案的资源的定位符。而URL表示资源的地址
URL是URI的子集。
综上所述,URI 就是由某个协议方案(可以是HTTP/FTP/…)表示的资源的定位标识符,一般来说我们根据URI来定位资源的时候,可以使用绝对地址/相对地址
绝对地址的形式一般为:
http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1
http:协议类型,还可以是ftp等其他协议,不区分大小写
use:pass :登录认证(可选)
pass@www.example.jp:服务器地址,在绝对URI中必须采用指定,可以是可解析的域名,或直接是相应的IP地址。
80服务器连接端口号
HTTP网络基础
最新推荐文章于 2022-11-24 11:07:41 发布
本文详细介绍了TCP/IP协议族的分层结构,包括应用层的HTTP协议、传输层的TCP协议、网络层的IP协议以及链路层的作用。TCP协议通过三次握手确保数据传输的可靠性,而IP协议则负责数据包的传输和路由选择。DNS协议用于将域名解析为IP地址,URI和URL则用于资源的定位。理解这些协议的工作原理对于网络通信至关重要。
摘要由CSDN通过智能技术生成