OSI网络模型的实现

引言

​ 上篇说了,OSI(Open System Interconnect)即开放式系统互联。 一般称之为OSI参考模型,1985年ISO(国际标准化组织)组织研究的网络互联模型。所以OSI是一种参考模型,是一个概念,并没有可实现的接口。TCP/IP可以说是OSI的一种实现。

1、TCP/IP介绍
1.1、TCP/IP是四层还是五层?

先看下面的对比图:

在这里插入图片描述

一般书中都会说是四层模型,但是一般网上或者一些教学视频上都会说五层。因为OSI是国际化标准参考模型,所以把链路层分为数据链路层和物理层来讲解更容易让人接受。并且TCP/IP模型对网络层的下层并不关心。

1.2、TCP/IP协议栈

在这里插入图片描述
TCP/IP协议栈中较重要的协议我以及用红色标注。接下来本文重点讲解TCP协议。

2.、TCP(传输控制协议)简介

➢面向连接的、端到端的、可靠的、基于字节流的传输层通信协议
➢将应用层的数据流分割成报文段并发送给目标节点的TCP层
➢数据包都有序号,对方收到则发送ACK确认,未收到则重传
➢使用校验来检验数据在传输过程中是否有误

3、TCP报文格式

在这里插入图片描述

  1. 发送端端口号,16位。
  2. 接收端端口号,16位。
  3. sequence number,32位。用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
  4. 确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
  5. 数据偏移,4位。指出TCP报文段的数据起始处距离报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的。
  6. 5.保留:6位 。下面有6个控制位说明本报文段的性质。
  7. 标志(Flags):6位。共6个,如下:
    1. URG :紧急指针标志
    2. ACK :确认序号标志
    3. PSH : push标志
    4. RST :重置连接标志
    5. SYN :同步序号,用于建立连接过程
    6. FIN : finish标志,用于释放连接
  8. 滑动窗口,16位。用于建立连接时,协商发送速度。TCP流量控制的一个手段
  9. 校验和,16位。一个端到端的校验和,由发送端计算,然后由接收端验证。其目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动。如果接收方检测到校验和有差错,则TCP数据段会被直接丢弃。
  10. 紧急指针,16位。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号。因此这个字段是紧急指针相对当前序号的偏移量。当Flags的URG位1时,此字段生效。出现紧急情况时,把它作为带外数据提前发送。
5、总结

在TCP协议中,标志位是重点,三次握手和四次挥手都是通过6个标志+序号+确认号来完成的。

欢迎扫描下面图片关注我的个人公众号,回复“资源”可以获取java核心知识整理和经典书籍

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值