TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP四层模型,从上到下依次是应用层、传输层、网络层和数据链路层(网络接口层)。

三次握手

1.客户端向服务端发送SYN包,问:“可以和你进行连接吗?”

2.服务端向客户端发送SYN+ACK包,并回答:“可以进行连接。”

3.客户端向服务端发送ACK包。连接成功。

这个过程叫做三次握手。

为什么要三次握手,而不是两次握手?

假如采用的是两次握手:

客户端向服务器端发送SYN1包,SYN1包在中间某个网络节点上产生了滞留,

过了一段时间,客户端会向服务端重新发送SYN2包,SYN2包成功发送,服务端发送SYN+ACK包给客户端,建立连接。

又过了一段时间,SYN1包滞留结束,发送到了服务端,此时,服务端会误认为是客户端又一次请求连接,于是服务端又向客户端发送了SYN+ACK包,第二次连接进入等待状态。

客户端认为是一个连接,而服务端认为是两个连接。造成了状态不一致。

如果是三次握手的情况下,服务端收不到最后的ACK包,就不会认为连接建立成功。

所以,三次握手,本质上来说,就是为了解决网络信道不可靠的问题。

为了在不可靠的网络信道上建立可靠的连接,就需要三次握手,但仅仅有三次握手还是不够。

一个包可能拆成多个包发送,如何处理丢包问题?如何处理乱序问题

在发送数据包时,客户端或者服务端(只要是发送端)会建立发送缓冲区。

TCP协议是全双工的,对于上述过程,不区分客户端和服务端,只要是发送端。

四次挥手

UDP协议

UDP协议是基于非连接的,过程就是数据包简单封装一下,然后直接通过网卡发送出去,客户端和服务端没有状态上的联系。

三大特点:性能损耗少、资源占用少、稳定性弱。

UPD还有另外一个重要的应用场景:隧道网络

3.TCP/IP协议,三次握手,四次挥手,UDP协议相关推荐

  1. Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)

    1.OSI 7层网络模型 1.网络七层协议 (1)OSI定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层.应用层),即ISO开放互连系统参考模型. (2)各层功能定义 这里 ...

  2. go tcp客户端自动重连_阿里面试: HTTP、HTTPS、TCP/IP、三次握手四次挥手过程?(附全网最具深度讲解)

    前言 这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题了-.-,蹭蹭就蹭蹭 :) 事实上我在阿里面试的时候确实被问到了这个问题,HTTP.HTTPS.TC ...

  3. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义:       这里 ...

  4. python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...

  5. TCP为什么需要三次握手四次挥手

    TCP为什么需要三次握手四次挥手 三次握手 TCP是通过程序实现的,可靠的,面向连接的协议.而程序是严谨的,每一次建立连接都会进行"三次握手"这样的步骤. 建立连接的目的是为了可靠 ...

  6. TCP/IP协议 - 三次握手四次挥手(入门易懂版)

    握手通俗理解为两个人见面Say Hai,客户端和服务端建立连接 挥手就可以理解为两个人结束会面,要Say Goodbai,客户端和服务端断开连接 要了解什么是三握四挥,必须要了解一个重要的知识点:什么 ...

  7. 计算机网络之UDP与TCP协议(三次握手, 四次挥手)

    ⭐️前面的话⭐️ 本文介绍计算机网络中有关传输层协议的知识--UDP与TCP协议,在TCP协议中,为了保证数据的可靠传输,引入了十大保证可靠性的机制,即确认应答,超时重传,连接管理(三次握手,四次挥手 ...

  8. 一些通讯知识、TCP/IP、三次握手四次分手(正确的图,网上很多错了)、HTTP\HTTPS、DNS、UDP

    总述 这里会按照一个浏览器(客户端)是向服务器请求资源的路径来分享知识点 有些内容在之前的博客有,您可以自取 浏览器(客户端)是如何向服务器请求资源的呢? 见下图: 客户端输入网址(输入搜索内容也是一 ...

  9. 【干货】TCP/IP协议三次握手四次挥手

    TCP是一种面向连接的.可靠的.基于字节流的传输层通信协议,在发送数据前,通信双方必须在彼此间建立一条连接.所谓的"连接",其实是客户端和服务端保存的一份关于对方的信息,如ip地址 ...

  10. 【网络工程】浅显易懂TCP/IP协议 三次握手 四次挥手

    目录 什么是三次握手? 如何进行三次握手 什么是四次挥手? 如何进行四次挥手 什么是三次握手? 为什么要三次握手?是为了保证建立一个安全可靠的链接 如何进行三次握手 第一次握手是由客户端发起,向服务端 ...

最新文章

  1. [原]tornado源码分析系列(三)[网络层 IOLoop类]
  2. oracle12c dml语句缓存,Oracle --DML、DDL、DCL
  3. nginx http请求强转https 无www强转www服务 过百度https认证
  4. GitHub 上万 star 项目大佬的自谦:一个学渣的阿里之路
  5. aio 系统原理 Java_Java新一代网络编程模型AIO原理及Linux系统AIO介绍
  6. Memory Monitor
  7. android测试云模拟器,基于Android模拟器的调研
  8. 图片计算景深matlab程序,在线景深计算器
  9. OSPF协议单域配置实例
  10. 【原创】nbsp;Window7nbsp;vs201…
  11. Android:获取并制作矢量图动画
  12. 基于opencv的重叠图像的凹点分割(C++)
  13. Matlab实现一元线性拟合
  14. 笔记本拆装步骤及注意事项
  15. Pycharm 使用多个光标进行编辑
  16. python中round函数的精度保留方法---四舍六入五成双
  17. 激活函数(sigmoid、tanh、ReLU、leaky ReLU)
  18. 正则表达式验证IP地址合法性
  19. python首行缩进_python中缩进
  20. Diffe_Hellman(迪菲-赫尔曼)算法

热门文章

  1. seo的asp.net的分词包
  2. Java -- 银行家算法
  3. python编的俄罗斯方块游戏下载_用python写一个俄罗斯方块小游戏
  4. 回收/华为/MA5600/ADEE/ADEF/整机/用户电缆
  5. JavaScript初学——实现功能:单击按钮,视频暂停,按钮图标变换
  6. 洛咕 P2403 [SDOI2010]所驼门王的宝藏
  7. 总结一下利用Jedis连接redis连接不上的解决办法
  8. linux下hp ssp在线更新固件,hpe ssp固件升级文档.docx
  9. HTML5期末大作业:关于餐饮美食网站设计——香港美食介绍(8页) HTML+CSS+JavaScript 大学生毕设网页设计源码HTML 实训大作业HTML
  10. 如何把mysql的ID归0?