没有人比我更懂TCP了!

796 阅读4分钟

本来问题是TCP的三次握手,但是如果要学习三次握手,就得搞懂TCP是什么 所以我刨根问底的搞了一下TCP到底是个啥,有错误的地方还希望大佬们指出

TCP(Transmission Control Protocol), 翻译过来就是传输控制协议

TCP作为一种面向连接的、可靠的、基于字节流的传输层通信协议

接下来我们,根据这个百度百科的解释来研究TCP

首先什么是面向连接?

既然有连接通信,那就有无连接通信 面向连接就是通信双方在通信时,要事先建立一条通信线路,然后进行通信。

在这里插入图片描述
无连接就是,通信无需建立通信线路,发送消息后,也无需对方回复
在这里插入图片描述

什么是可靠的

首先我们要知道,互联网是不可靠的,因为会有带宽,延迟,等问题 而TCP可以动态的适应这些特性,从而出现可靠的一种通道协议 那他怎么实现可靠的呢? 首先在建立连接的时候,通过三次握手来保证通信通道的可靠 其次使用检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输

传输层是什么

这里我们得学习一下网络分层,网络分层用于计算机或通信系统间的互联的标准体系 国际标准化组织(ISO)制定的OSI七层模型,每一层对应的不同的网络协议,这么多协议构成了我们进行通讯的一种规则,所以我们把这些网络协议统称为TCP/IP协议族(可见TCP/IP的重要性) 但是呢 目前没有完全按照OSI模型实现的网络协议栈 所以我们按照TCP/IP四层概念模型来介绍互联网之间是如何进行互联的

互联网之间的通信传输,底层都是靠着网线,电缆等,这年头断水断食不能断网啊! 而我们经常说 等我顺着网线爬过去 那我们来讲一讲每一层做了什么,到底怎么顺着网线爬过去的
在这里插入图片描述
发送方由应用层到接口层,层层封装,最后发送到接收方,接收方再一件一件的脱,最终得到相应的数据 那到底每一次都封装了点什么数据呢? 先说一下应用层和网络层,以HTTP协议和IP协议为例 应用层: HTTP,超文本传输协议,我们看看他的报文格式 可以看到,有我们熟知的请求方法:POST/GET,url地址等
img

网络层:IP协议,他的报文形式又是什么样呢 可以看到,报文中包含源IP地址和目的IP地址 所以IP协议的作用就是帮我们发现正确的目的IP位置

img
传输层: 那TCP做了点什么? 报文里包含了目的端口号,而且还有序列号,确认号 所以TCP通过端口号帮助我们区分数据包所属那个进程 还有通过序列号和确认号来进行三次握手,保证连接和传输的可靠
img

TCP和UDP的区别

说到了TCP肯定免不了UDP,讲一下这两者的区别

描述 TCP UDP
是否连接 面向连接 无连接
传输可靠性 可靠 不可靠
应用场合 少量数据 大量数据
速度

总结:

TCP是为了在不可靠的互联网络上提 供可靠的端到端字节流而专门设计的一个传输协议 是一种面向连接的、可靠的、基于字节流的传输层通信协议 只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。

这一节分析完TCP,下节将一下TCP的三次握手和四次挥手


另外我给大家提供了资料大礼包一份(共2G),大家可以关注我的公众号(在最下方!),回复:**java面试题** 来领取

在这里插入图片描述