首页 > 编程语言 >网络编程-TCP/IP

网络编程-TCP/IP

时间:2024-07-17 22:25:28浏览次数:21  
标签:协议 IP 编程 TCP 标识 数据 数据包

网络概述

网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。

每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务

网络体系结构即指网络的层次结构和每层所使用协议的集合

两类非常重要的体系结构:OSI 七层模型 与TCP/IP 五层模型

OSI 七层模型

理想的模型:

在这里插入图片描述
!

TCP/IP五层模型

实际使用的模型:

请添加图片描述

TCP/IP 协议通信模型

TCP/IP (Transfer Control Protocol/Internet Protocol) 协议,我们也叫做⽹络通讯协议。包含了⼀系
列构成互联⽹基础的⽹络协议,是 Internet 的核⼼协议。按照⽤法把他们分为⼀下⼏层。

在这里插入图片描述
!在这里插入图片描述

数据封装与传递过程

在这里插入图片描述

TCP/IP 底层结果

在这里插入图片描述

TCP/IP 通信数据封装

在这里插入图片描述

发送流程:

应⽤层放⼊数据 -> 传输层 插⼊ TCP ⾸部 -> ⽹络层插⼊ IP ⾸部 -> 数据链路层插⼊以太⽹头 -> 物理层通过⽹卡发送

接收流程:

物理层⽹卡接收 -> 数据链路层解析以太⽹头 -> ⽹络层解析 IP ⾸部 -> 传输层解析 TCP ⾸部 -> 应⽤层获得数据

WireShark 分析 IP 数据包格式

TCP/IP 协议中,TCP 协议和 IP 协议分别完成不同的任务。

TCP 是⽤来检测⽹络传输中的差错。

IP 协议可以将多个交换⽹络连接起来,在源地址和⽬的地址之间传送数据包。同时,它还提供数据重 新组装功能,以适应不同⽹络对数据包⼤⼩的要求。

在 TCP/IP 协议中,使⽤ IP 协议传输的数据包就是 IP 数据包。

IP 报⽂是在⽹络层传输的数据单元,也叫 IP 数据报。

在这里插入图片描述

 版本 : IP 协议的版本,⽬前的 IP 协议版本号为 4,下⼀代 IP 协议版本号为 6。

 ⾸部⻓度:IP 报头的⻓度。固定部分的⻓度(20 字节)和可变部分的⻓度之和。共占 4 位。
最⼤为 1111,即 10 进制 的 15,代表 IP 报头的最⼤⻓度可以为 15 个 32bits(4 字节),也
就是最⻓可为 15*4=60 字节,除去固定部分的⻓度 20 字节,可变部分的⻓度最⼤为 40 字
节。

 服务类型:Type Of Service。

 总⻓度:IP 报⽂的总⻓度。报头的⻓度和数据部分的⻓度之和。

 标识:唯⼀的标识主机发送的每⼀份数据报。通常每发送⼀个报⽂,它的值加⼀。当 IP 报⽂⻓
度超过传输⽹络的 MTU(最⼤传输单元)时必须分⽚,这个标识字段的值被复制到所有数据分
⽚的标识字段中,使得这些分⽚在达到最终⽬的地时可以依照标识字段的内容重新组成原先的
数据。

 标志:共 3 位。R、DF、MF 三位。⽬前只有后两位有效,DF 位:为 1 表示不分⽚,
为 0 表示分⽚。MF:为 1 表示 “更多的⽚”,为 0 表示这是最后⼀⽚。

 ⽚位移:本分⽚在原先数据报⽂中相对⾸位的偏移位。(需要再乘以 8)

 ⽣存时间:IP 报⽂所允许通过的路由器的最⼤数量。每经过⼀个路由器,TTL 减 1,当为 0
时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置⼀个 8 bit 字段. 推荐的初始值由分
配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最⼤值 255。

 协议:指出 IP 报⽂携带的数据使⽤的是那种协议,以便⽬的主机的 IP 层能知道要将数据报上
交到哪个进程(不同的协议有专⻔不同的进程处理)。和端⼝号类似,此处采⽤协议号,TCP
的协议号为 6,UDP 的协议号为 17。ICMP 的协议号为 1,IGMP 的协议号为 2.

 ⾸部校验和:计算 IP 头部的校验和,检查 IP 报头的完整性。

 源 IP 地址:标识 IP 数据报的源端设备。

 ⽬的 IP 地址:标识 IP 数据报的⽬的地址。

标签:协议,IP,编程,TCP,标识,数据,数据包
From: https://blog.csdn.net/gopher9511/article/details/140503155

相关文章

  • Modbus转Ethernet/IP网关模块与汇川PLC通讯案例
    Modbus转Ethernet/IP网关模块(XD-MDEP100)是一种用于将Modbus协议转换为Ethernet/IP协议的设备。在汇川PLC通讯中,使用Modbus转Ethernet/IP网关模块可以方便地实现与其他设备的数据传输和通信。Modbus转Ethernet/IP网关模块(XD-MDEP100)连接到ETHERNET/IP总线中做为从站使用。Modb......
  • 编程世界的对决:JavaScript vs Java
    在编程领域,Java和JavaScript这两门语言各有千秋。它们不仅在语法上有着明显的区别,在编程理念、表现力、类型转换以及代码的易读性和复杂性方面也有着巨大的差异。本文将深入探讨JavaScript相较于Java的优势,以及两者在代码风格和开发体验上的不同。1.表现力的对比1.1JavaScr......
  • C语言函数:编程世界的魔法钥匙(1)
    目录1.C语言中的函数是什么?2.函数的分类:2.1标准库函数2.1.1库函数的诞生:2.1.2库函数的作用:2.1.3如何学习使用库函数2.2自定义函数2.2.1函数的组成:2.2.2自定义函数的优点  2.2.3 例题3.函数的参数3.1实际参数(实参):3.2形式参数(形参):4.函数的调用4.1......
  • 【计算机网络中的TCP/IP】TCP/IP协议中的tcp与udp
    目录简单介绍一些TCP/IP协议TCP/IP协议的组成TCP/IP协议中tcp与udp的区别1.简单介绍一下TCP/IP协议         TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指......
  • 关于Iphone的越狱、绕过激活锁ID相关知识备忘
    很少对苹果设备进行越狱,所以相关知识也不甚了解。这里记录一下备忘。恢复模式和DFU模式恢复模式(RecoveryMode)和DFU模式(DeviceFirmwareUpgradeMode)是苹果iOS设备中两种不同的维护和修复模式,主要用于在遇到软件问题时恢复设备。以下是两者的主要区别和用途:恢复模式(Recove......
  • 题解 P1031 [NOIP2002 提高组] 均分纸牌
    link贪心题中描述每一堆牌只能移动若干张牌到相邻的牌堆上确定了局部最优解必定能推导出全局最优解。易知均分完后,每堆牌的数量都为纸牌总数的平均数\(\mathrm{arg}\)。所以我们可以预处理每堆牌跟\(\mathrm{arg}\)的差距for(inti=1;i<=n;++i)sum+=a[i];......
  • 探索Mojo编程语言:AI开发者的新宠儿
    文章目录探索Mojo编程语言:AI开发者的新宠儿一、Mojo编程语言概述什么是Mojo?二、Mojo的安装与配置安装MojoWindowsmacOSLinux配置Mojo三、基本语法与数据类型标量变量数组哈希四、控制结构条件语句循环语句五、函数与模块函数模块六、文件操作与正则表达式文件读取......
  • TS 入门(七):TypeScript模块与命名空间
    目录前言回顾泛型编程1.模块a.导入和导出b.默认导出c.重命名导入和导出2.命名空间a.定义命名空间b.嵌套命名空间3.动态导入与条件导入a.动态导入b.条件导入结语前言在前几章中,我们学习了TypeScript的基础知识、函数与对象类型、接口与类、以及泛型编......
  • 常用的 JavaScript 数组处理方法
    1.map方法用于创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数后返回的结果。letitems=[{id:1,name:'item1'},{id:2,name:'item2'},{id:3,name:'item3'}];letitemNames=items.map(item=>item.name);console.log(itemNames);......
  • TCP/IP网络模型详解
    在计算机网络领域,网络模型通常指的是OSI(OpenSystemsInterconnection)参考模型或TCP/IP(TransmissionControlProtocol/InternetProtocol)模型。这些模型描述了网络中数据传输的层次结构,便于理解和设计网络系统。1.OSI七层网络模型OSI(OpenSystemsInterconnection)七层网络......