本来问题是TCP的三次握手,但是如果要学习三次握手,就得搞懂TCP是什么 所以我刨根问底的搞了一下TCP到底是个啥,有错误的地方还希望大佬们指出
TCP(Transmission Control Protocol), 翻译过来就是传输控制协议
TCP作为一种面向连接的、可靠的、基于字节流的传输层通信协议
接下来我们,根据这个百度百科的解释来研究TCP
首先什么是面向连接?
既然有连接通信,那就有无连接通信 面向连接就是通信双方在通信时,要事先建立一条通信线路,然后进行通信。
什么是可靠的
首先我们要知道,互联网是不可靠的,因为会有带宽,延迟,等问题
而TCP可以动态的适应这些特性,从而出现可靠的一种通道协议
那他怎么实现可靠的呢?
首先在建立连接的时候,通过三次握手来保证通信通道的可靠
其次使用检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输
传输层是什么
这里我们得学习一下网络分层,网络分层用于计算机或通信系统间的互联的标准体系 国际标准化组织(ISO)制定的OSI七层模型,每一层对应的不同的网络协议,这么多协议构成了我们进行通讯的一种规则,所以我们把这些网络协议统称为TCP/IP协议族(可见TCP/IP的重要性) 但是呢 目前没有完全按照OSI模型实现的网络协议栈 所以我们按照TCP/IP四层概念模型来介绍互联网之间是如何进行互联的
网络层:IP协议,他的报文形式又是什么样呢 可以看到,报文中包含源IP地址和目的IP地址 所以IP协议的作用就是帮我们发现正确的目的IP位置
TCP和UDP的区别
说到了TCP肯定免不了UDP,讲一下这两者的区别
| 描述 | TCP | UDP |
|---|---|---|
| 是否连接 | 面向连接 | 无连接 |
| 传输可靠性 | 可靠 | 不可靠 |
| 应用场合 | 少量数据 | 大量数据 |
| 速度 | 慢 | 快 |
总结:
TCP是为了在不可靠的互联网络上提 供可靠的端到端字节流而专门设计的一个传输协议 是一种面向连接的、可靠的、基于字节流的传输层通信协议 只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
这一节分析完TCP,下节将一下TCP的三次握手和四次挥手
另外我给大家提供了资料大礼包一份(共2G),大家可以关注我的公众号(在最下方!),回复:**java面试题** 来领取