计算机网络模型,HTTP协议以及TCP/IP协议三次握手的理解

(一) 为什么计算机网络模型有七层和四层之说?

  1. “七层”是开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),即物理层 、 数据链路层 、 网络层、传输层、 会话层 、表示层、应用层
  2. 四层”是TCP/IP参考模型,即物理链路层、 网络层、传输层、应用层
  3. 虽说有四层和七层之说,但是其实一样的,TCP/IP中的物理链路层对应OSI中的物理层和数据链路层 ,网络层对应网络层,传输层对应传输层,应用层对应会话层 、表示层、应用层 。
  4. OSI七层模型太过细化,虽有一定的参考意义,但实现起来比较繁琐,相比较而言,TCP/IP模型比较简洁,具有较强的实际应用价值,所以现实的网络中并没有采用OSI这个模型,而是采用了TCP/IP模型

(二) TCP/IP是什么东西?HTTP协议和TCP/IP有什么关系

  1. TCP/IP并不是单独的一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及http、ftp、pop3协议等等,IP协议和TCP是TCP/IP协议族的核心,
  2. IP是网络层协议,TCP是传输层协议,HTTP是应用层协议,三者分别处于三个不同层次上,tcp是建立在ip的基础上,http又是建立在tcp的基础上
    在这里插入图片描述
    在这里插入图片描述

(三) 物理层,网络层,传输层,应用层的理解

  1. 计算机网络模型中物理层、链路层、网络层、传输层、应用层等是怎么工作的?比如一个主机的数据要经过哪些过程才能发送到对方的主机上(以OSI七层模型为例)
    答案:比如A向B发送一个QQ信息 “你好”, A主机在应用层上将这条信息准备好(你从键盘上打字),然后表示层将这2个字的具体信息准备好(大小,粗细,颜色等),会话层就与B建立会话连接(喂,你在吗,我要发东西给你),传输层就让AB两台主机建立逻辑上的连接(QQ是UDP无连接的,MSN是TCP有连接的),传输层将数据分段 并在所有数据段之前打上端口号4000(QQ的端口号)的标签,网络层进行路由寻址,就是找到去往B的路,然后在数据段前面加上目的IP变成数据包送到数据链路层,数据链路层在数据包前面加上下一个路由的MAC地址(每经过一个路由变一次,直到B的MAC地址),然后将数据包转换为帧,最后到物理层,物理层将数据帧变成010101的比特流,发送出去,以上就是封装的过程,然后经过N个路由,最后送到主机B物理层上,开始解封装,将01010比特流转化为数据链路层可以识别的数据帧,并拆下最前面一段MAC地址,拿出来一看,哦,这是给我的数据包,然后将数据帧转化为数据包送给网络层继续拆,拆下IP地址,也符合,再转化为数据段送给传输层,传输层也拆开端口信息,然后将数据段重组成数据发给4000端口(否则计算机不知道到底应该将数据交给谁处理,端口就是电脑知道这到底是谁的数据,总不能发给音乐或者视频什么的吧),再到会话层完成终止这次会话,到表示层和应用层就在主机B上将“你好“两个字显示出来,整个过程就基本完成了

(四) TCP协议的三次握手和四次挥手的理解

  1. 三次握手与四次挥手的图解 
    三次挥手
    在这里插入图片描述
  2. 三次握手的过程理解
    tip: 每一次TCP连接都需要经过三个阶段:连接建立、数据传送和连接释放。三次握手就发生在连接建立阶段。
    a) 第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;
    b) 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    c) 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
  3. 四次挥手的过程理解
    tips: 每一次TCP连接都需要经过三个阶段:连接建立、数据传送和连接释放。四次挥手就发生在连接释放阶段。
    a) 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT1状态
    b) 第二次握手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 + 1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT状态。
    c) 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发一个 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
    d) 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 + 1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态
  4. 每个状态代表的含义
  • LISTEN - 侦听来自远方TCP端口的连接请求;
  • SYN-SENT -在发送连接请求后等待匹配的连接请求; SYN-SYN-RECEIVED- 在收到和发送一个连接请求后等待对连接请求的确认;
  • ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
  • FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
  • FIN-WAIT-2 - 从远程TCP等待连接中断请求;
    CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
    CLOSING -等待远程TCP对连接中断的确认;
  • LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
  • TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认; CLOSED - 没有任何连接状态

5 连接和断开时一些字段的含义在这里插入图片描述
6. 三次握手和四次挥手的理解,三岁小孩都能懂

  • 场景:小明和小芳打电话
  • 三次握手:①拨号,滴滴了一会,小明说,小芳,你能听到我说话吗 ②小芳说,我能听到,你能听到我说话吗 ③小明又说,我也可以听到你,那咱们开始聊天吧
  • 。。。。。。。。。。。。。。。。。聊了许久(类似于发生了多次http请求)
  • 四次挥手:①小明说,小芳我说的差不多了,你还有什么话要说嘛 ②小芳说,哦你的事情说完了呀(第一次确认)
    ③小芳又说,我也没啥说的了,要不下次再聊?(第二次FIN) ④好的,那挂了啊,有事再找你
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值