IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络原理之TCP/IP协议 -> 正文阅读

[网络协议]网络原理之TCP/IP协议

什么是协议:两个主机之间的一系列约定就称之为协议。

协议中约定的细节,就表示传输的数据。

因为网络通信要规定的细节还是非常多的。要是把这些细节都放在一个协议里面,那么这个协议就会非常的复杂, 于是就把不同的细节由不同的协议规定 ,所以就有了很多协议,又根据协议的功能类型,把这些协议分成了“协议簇/协议栈”

OSI七层模型(既复杂又不实用) 通常使用TCP/IP五层(四层没有物理层)模型

TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求 .
这5层的层级结构分别是,物理层,数据链路层,网络层,传输层,应用层。
下表表示各层该做的事及各层存在的协议。
应用层:负责应用程序间的沟通(用户切实的使用 如去淘宝买衣服穿)

DNS,HTTP等协议

(应用程序)

传输层:负责两台主机之间的数据传输(他就要负责收件人的信息和发件人的信息)

TCP,UDP等协议

(操作系统)

网络层:负责地址管理和路由选择(快递公司规划路线,路线有很多,它就需要规划处一条比较合适的)

ARP,IP等协议

(操作系统)

数据链路层:负责设备间的数据帧的传送和识别(在规划好的路线中选择出行的方式)

以太网协议

(设备驱动程序与网络接口)

物理层:负责光/电信号的传递方式(确定了出行方式 还要有相应的交通设备? 他就负责决定用什么交通设备)

硬件设备等

(设备驱动程序与网络接口)

数据包的封装和分用

1.不同的协议对数据包有不同的称谓 数据链路层把它称之为数据帧 ,网络层把它称之为数据报,传输层把它叫做数据段。

2.应用层数据通过协议栈发送到网络上时,每层协议都需要加上一个数据首部(header),这就称之为封装(这是发送方发生的事情)。

下面举一个例子来解释封装和分用。

QQ程序,接收用户输入的“hello”

QQ程序就把“hello”包装成一个 应用程数据报

?应用程序把这个应用层协议的数据报交给了传输层,传输层的TCP协议把这个应用层数据打包成一个TCP的数据包

?传输层协议把这个数据报交给网络层(IP协议),IP协议把这个传输层数据打成一个网络层数据包

?网络层再把这个数据交给数据链路层,数据链路层主要的“以太网”把网络层数据包,打包成一个数据链路层数据包

?数据链路层把这个数据交给物理层,物理层把这一串数据转化成光/电信号进行传输。

每一层协议报头,都是二进制的数据。

接收方再把数据从下到上进行分用

物理层收到光/电信号的数据,把数据解析还原成二进制的bit流,再把这个二进制的数据交给数据链路层。

数据链路层就拿到了一个以太网数据帧

以太网协议,解析这个数据帧,去掉帧头和帧尾,把中间部分交给网络层,网络层就拿到了一个IP数据报?

?再解析IP数据报,把IP报头取出来去掉,然后把剩下的部分交给传输层。

传输层TCP协议拿到这个是数据之后在进行解析,去除TCP报头,把剩下的部分交给应用程序,QQ应用程序拿到这个数据之后,按照应用层的协议解析,得到msg为hell

协议的分层,意义就是为了降低模块之间的耦合,以降低人们的使用和学习成本,并且可以灵活的替换。

?IP地址和mac地址都代表着一个主机

*UDP和TCP之间的特点的初步比较

1.UDP无连接,TCP有连接(UDP只需要直到对方的IP地址和端口号就直接进行传输不需要建立连接,而TCP需要,就像是打电话,需要对方接通才行)

2.UDP是不可靠,TCP是可靠传输(可靠说的不是能100%把数据发送到对方哪里,而是可以直到自己的数据是发送成功了还是失败了)

3.UDP协议面向数据报,TCP协议面向字节流。(UDP传输数据的基本单位是数据报,一个数据报相当于若干个字节,? TCP传输数据的基本单位是字节)

一.UDP报文的结构

?

有时候数据的传输会发生后发先到的情况?

16位校验和就是为了检验数据是否正确,但是不能百分之白保证。

校验和的计算往往是和数据的内容相关的,而不只是个数。

UDP由于自身是不可靠传输所以在开发中使用的并不多,很多场景都是需要可靠性的。

UDP的有点:

(1)传输速度快 (2)UDP支持“广播”(机房内部同一个局域网下的主机间的通信)

二.TCP

报文结构

保留位:是现在用不上 但是先占个位置 后面可能就用上了?

?这是TCP的六个标志位,每个标志位都是一个bit能表示0/1

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:30:30  更:2021-09-12 13:31:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:41:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码