首页 > 编程源码 > 一文搞懂什么是TCP/IP协议

一文搞懂什么是TCP/IP协议

楼主:故人 [4级] · 2019-11-24 ·  浏览1063 · 编程源码 · ID:

什么是TCP/IP协议?

计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件,操作系统之间的通信,所有这一切都需要一种规则.而我们就将这种规则称为协议 (protocol).

也就是说,TCP/IP 是互联网相关各类协议族的总称。

TCP/IP 的分层管理

TCP/IP协议里最重要的一点就是分层。TCP/IP协议族按层次分别为 应用层,传输层,网络层,数据链路层,物理层。当然也有按不同的模型分为4层或者7层的。

为什么要分层呢?

把 TCP/IP 协议分层之后,如果后期某个地方设计修改,那么就无需全部替换,只需要将变动的层替换。而且从设计上来说,也变得简单了。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清对方在地球上哪个地方,怎样传输,如果确保到达率等问题。

如上图所示,我们将TCP/IP分为5层,越靠下越接近硬件。我们由下到上来了解一下这些分层。

物理层

该层负责 比特流在节点之间的传输,即负责物理传输,这一层的协议既与链路有关,也与传输的介质有关。通俗来说就是把计算机连接起来的物理手段。

数据链路层

控制网络层与物理层之间的通信,主要功能是保证物理线路上进行可靠的数据传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据结构的结构包,他不仅包含原始数据,还包含发送方和接收方的物理地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。如果在传达数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。

网络层

决定如何将数据从发送发路由到接收方。网络层通过综合考虑发送优先权,网络拥塞程度,服务质量以及可选路由的花费等来决定从网络中的A节点到B节点的最佳途径。即建立主机到主机的通信。

传输层

该层为两台主机上的应用程序提供端到端的通信。传输层有两个传输协议:TCP(传输控制协议)和 UDP(用户数据报协议)。其中,TCP是一个可靠的面向连接的协议,udp是不可靠的或者说无连接的协议

应用层

应用程序收到传输层的数据后,接下来就要进行解读。解读必须事先规定好格式,而应用层就是规定应用程序的数据格式。主要的协议有:HTTP.FTP,Telent等。

TCP与UDP

TCP/UDP 都是传输层协议,但是两者具有不同的特效,同时也具有不同的应用场景。

面向报文

面向报文的传输方式是应用层交给UDP多长的报文,UDP发送多长的报文,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。

面向字节流

虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应该程序传送的数据块太长,TCP就可以把它划分短一些再传送。

TCP的三次握手与四次挥手

具体过程如下:

第一次握手:建立连接。客户端发送连接请求报文段,并将syn(标记位)设置为1,Squence Number(数据包序号)(seq)为x,接下来等待服务端确认,客户端进入SYN_SENT状态(请求连接);

第二次握手:服务端收到客户端的 SYN 报文段,对 SYN 报文段进行确认,设置 ack(确认号)为 x+1(即seq+1 ; 同时自己还要发送 SYN 请求信息,将 SYN 设置为1, seq为 y。服务端将上述所有信息放到 SYN+ACK 报文段中,一并发送给客户端,此时服务器进入 SYN_RECV状态。

SYN_RECV是指,服务端被动打开后,接收到了客户端的SYN并且发送了ACK时的状态。再进一步接收到客户端的ACK就进入ESTABLISHED状态。

第三次握手:客户端收到服务端的 SYN+ACK(确认符) 报文段;然后将 ACK 设置为 y+1,向服务端发送ACK报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED(连接成功)状态,完成TCP 的三次握手。

注:来源网络petterp大神

下文续说:

# 续~,图解HTTP中的一副插图 帮助大家解释#

- 版权声明 - 1、本帖所有言论和图片等纯属网友个人意见,与流星社区立场无关;
2、其他单位或个人使用、转载或引用本帖时必须同时征得该帖子作者故人流星社区的同意;
3、备注原文地址:https://bbs.liuxingw.com/t/18175.html,可忽略第2条;
4、帖子作者需承担一切因本文发表而直接或间接导致的相关责任;
5、如本帖内容或部分内容转载自其它媒体,这并不代表本站赞同其观点和对其真实性负责;
6、如本帖若为资源类,将仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您安装或使用的设备中彻底删除上述内容;
7、如果您喜欢该程序,请支持正版软件,购买注册,可以得到更好的正版服务;
8、如本帖侵犯到任何版权或违法问题,请立即邮件告知我们,我们将及时予以处理。
20条回复 |  最后回复于2019-11-24

故人 [4级]

‭@老樊⁠⁣⁠⁣ ‬‬‬诺
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

我与你同在の [2级]

报告!我还是不懂怎么办
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

故人 [4级]

没关系
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

故人 [4级]

‭@老樊⁠⁣⁠⁣ ‬‬‬请求救助热帖[蜷]
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

老樊⁠⁣⁠⁣ [1级]

给50星币,包了
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

故人 [4级]

残忍
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

老樊⁠⁣⁠⁣ [1级]

等等,是哪个贴
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

故人 [4级]

就是热这个帖
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

老樊⁠⁣⁠⁣ [1级]

45吧[大拇指]
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

故人 [4级]

折扣
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...
登录注册 后才可进行评论
签到
40人签到
已签0天
  • 46637帖子
  • 1936936热点量
  • 185040火热值