目录

TCP/IP协议群简介(互联网协议群)(Internet Protocol Suite)

应用层(Application)(合并简化了展示层,会话层)

传输层(Transport)

网络层(Internet)

链接层(Link)

物理层(Pysical)

TCP/IP封包

完整的TCP协议头

TCP协议封包(传输层协议)

建立TCP/IP连接为什么需要三次握手?

传输和处理数据顺序

确定一个消息的顺序:绝对时间

TCP/IP协议的处理方法

挥手(中断连接)

TCP的结束(场景)

总结与思考


TCP/IP协议群简介(互联网协议群)(Internet Protocol Suite)

类似OSI模型,一种网络协议的概念模型。

应用层(Application)(合并简化了展示层,会话层)

提供应用间通信能力

传输层(Transport)

提供主机到主机(host-to-host)的通信能力

网络层(Internet)

提供地址到地址的通信能力

链接层(Link)

提供设备到设备的通信能力

物理层(Pysical)

TCP/IP封包

完整的TCP协议头

TCP协议封包(传输层协议)

  • 每个封包称作一个TCP信息段(TCP Segment)
  • Header用于描述传输行为(如源端口,目标端口等)
  • Header后面跟若干个byte数据,每个byte拥有自己的序列号

建立TCP/IP连接为什么需要三次握手?

客户端SYN_SEND【通过connect()】——请求同步SYN——》服务端【listen()】收到,状态变为SYN-RECEIVED

——我确认收到你的同步请求SYN-ACK——》客户端收到状态变为ESTABLISHED(客户端处于连接状态)——确认——》服务端收到ESTABLISHED(服务端处于连接状态)【然后开始交换数据】

具体步骤如下图:

努力保证数据的可靠

传输和处理数据顺序

确定一个消息的顺序:绝对时间

使用发送、接收时间

  • 服务器时间差异如何解决?

使用自增序号

  • A-B-A-B类型会话可以解决?
  • A-(AB)-B类型会话如何解决?

TCP/IP协议的处理方法

消息的绝对顺序用(SEQ,ACK)这一对元组描述(不变量)

SEQ(Sequence):这个消息发送前一共发送了多少字节

ACK(Acknowledge):这个消息发送前一共收到了多少个字节

挥手(中断连接)

TCP的结束(场景)

可靠性

TCP的四次挥手

发起者close()【FIN_WAIT1】——FIN——>接收者CLOSE_WAIT【先处理自己的响应】LAST_ACK——ACK~FIN——》发起者【FIN_WAIT_2】【TIME_WAIT】——ACK——>CLOSED&&CLOSED

一个人说就聊到这,然后2个人把正在发和回复的消息处理完,都对对方说了就聊到这。然后连接就断了。

总结与思考

  • 最简化原则:没有足够的事情要做,就不必分层
  • 思考计算机对话和人对话的区别?为什么需要三次握手?

人对话是有上下文context的,计算机之间没有那么多上下文

  • 网络中的顺序问题,TCP协议给了完美的解法,这个方法是可以迁移的。(学算法的价值)

不变量(SEQ,ACK)

网络协议-TCP、IP协议和互联网协议群相关推荐

  1. java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计

    [JAVA 网络编程 TCP/IP.Socket 和协议设计] TCP/IP 协议简介 IP 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成 ...

  2. 网络:TCP/IP各层的协议

    教程书上虽然介绍了这些协议,但是就单个协议分别介绍的,很容易忘了这个协议属于那一层,以及属于底层哪个协议. 上图TCP/IP各层的协议很多,一张图就可以记住了. 应用层协议 0.  运行 在TCP\U ...

  3. 网络编程-TCP/IP协议栈-UDP/HTTP协议

    UDP协议 UDP协议全称是用户数据报协议,在网络中她与TCP协议一样用于处理数据包,两个协议同处于协议栈的传输层,和TCP不同的是,UDP是一种无连接的协议栈. 因为UDP是无连接的,所以相对来说, ...

  4. 计算机网络五层协议(TCP/IP)与七层协议(OSI)的关系与区别【计算机网络】

    p.s.高产量博主,点个关注

  5. 网络编程-TCP/IP协议栈-TCP协议

    TCP协议 TCP协议作用 TCP协议位于协议栈的传输层.当应用层向TCP层发送用于网间传输的,用8字节表示的数据流,TCP则吧数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受到改计算机连 ...

  6. 网络编程-TCP/IP协议栈-IP协议

    协议 协议就是约定的一种规则,例如扑克游戏中约定好的各种规则,2<3<4<5<-等,以此作为游戏规则.当所有人都遵循这个规则,那么久可以不需要任何多余的交流就可以进行游戏,这个 ...

  7. 网络基础知识 | 协议 | TCP/IP分层模型

    目录 网络基础知识 网络互联 互联网基础知识 网络的构成要素 网卡 中继器 网桥/2层交换机 路由器/3层交换机 4-7层交换机 网关 协议 分组交换协议 谁来规定协议 协议的标准化 协议的分层 分层 ...

  8. 互联网协议 — TCP/IP 分层体系结构

    目录 文章目录 目录 计算机网络的分层体系结构 TCP/IP 分层体系结构 分层协议族 分层 PDU(Protocol Data Unit,协议数据单元)类型 分层 PDU 的封装与解封装 逐层封装 ...

  9. Java中的网络和TCP/IP协议

    网络和TCP/IP协议 一.网络通信协议 1.1 协议和七层模型 1.2 TCP/IP协议 二.网络通信的实现 2.1 TCP协议通信 2.2 UDP协议通信 前言: 有时候我们会不理解,我们在QQ上 ...

  10. 自组织网络(Ad Hoc Network)——TOPIC 4 IP地址和互联网协议【RIP内容更新】

    TOPIC 4 IP地址和互联网协议 IP IP是TCP/IP协议的网络层. 对上可载送传输层各种协议的信息,例如TCP.UDP等:对下可将IP信息包放到链路层,通过以太网.令牌环网络等各种技术来传送 ...

最新文章

  1. qtcreator安装后的设置
  2. mysql 时差查了13小时_Mysql 时间差了 14 或 13 小时 com.mysql.cj.jdbc.Driver
  3. python 3d绘图 范围_python – 在3D绘图中绘制所有三个轴上的分布轮廓
  4. 机器学习算法基础——k近邻算法
  5. php redis zset 延迟队列_PHP + Redis 实现简单消息队列
  6. unity脚本运行顺序具体的解释
  7. golang panic的错误回收和简单的使用场景
  8. web框架之Django(一)
  9. linux下关于密码复杂度设置
  10. linux 适配电脑内核,Linux内核实践 如何添加网络协议[三]:实现 -电脑资料
  11. Linux向文件中写入内容
  12. matlab空间直线拟合,使用matlab进行空间拟合
  13. Typora文档添加水印
  14. 正态分布概率函数积分推导伽马函数性质
  15. 电脑连手机热点找不到服务器的ip地址,电脑开热点手机连不上怎么连接
  16. 红帽linux安装要钱吗,红帽linux安装
  17. linux redis 调优,关于redis状态监控和性能调优详解
  18. CIP4和JDF,您知道多少?(转)
  19. 点云渲染的颗粒感和背景色相关
  20. php 凯撒加密解密,PHP脚本实现凯撒加(解)密

热门文章

  1. 使用xpath时候出现AttributeError: ‘list‘ object has no attribute ‘strip‘解决方法
  2. Java创建遍历二叉树(递归)并求树高及叶节点个数(代码全)
  3. mycat读写分离测试
  4. oracle if中过程判断,oracle的if判断语句
  5. 周鸿祎携奇酷手机999元“射杀”行业暴利
  6. vue uniapp 实现走马灯 ,文字横向滚动
  7. 找不到匹配的outgoing encryption 算法
  8. 最新网易云课堂Python Flask框架全栈开发(完整版)
  9. python可变集合和不可变集合_不可变集合frozenset
  10. 数学建模(二)—— 蔬菜供应方案设计