搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
花生_TL007
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Python发送邮件报错 smtplib.STMPDataError_smtplib.smtpdataerror: (550, b'the "from" header i
2
Tensorflow---使用Tensorflow初步进行卷积层的基本使用_tensorflow如何让数据直接进入卷积层
3
【OpenCV】 基础入门(一)初识 Mat 类 | 通过 Mat 类显示图像_cv::mat显示图片
4
【测试开发八股文】算法
5
浅谈DNS和HOSTS文件的区别和关系_dns和hosts的区别
6
打破深度学习局限,强化学习、深度森林或是企业AI决策技术的“良药”
7
抖音直播带货如何做好抖音直播间数据,提升权重?_直播带货流量比例搜索比例大
8
EasyCVR打造基于人工智能和增强现实技术的智能运检系统“AR巡检”_ar眼镜巡检 csdn
9
Vivado之实现(布局布线)流程浅析_vivado布局布线
10
Devin:一位半吊子程序员,还是即将成为编程超级特工?
当前位置:
article
> 正文
tcp/ip 原理_tcp服务器地址和ip地址一样不
作者:花生_TL007 | 2024-04-22 02:12:58
赞
踩
tcp服务器地址和ip地址一样不
各种L2数据网具有不同的通信协议与帧结构,其网络节点设备可以是各种类型的数据交换机(X.25、FR、Ethernet和ATM等分组交换机);而L3数据网(IP网或internet)具有统一的TCP/IP通信协议和分组结构,全网采用统一格式的IP地址,节点设备统一采用面向无连接的路由器。为便于理解,我们可以将L3数据网简单地理解为构建在L2数据网平台上的一个路由器网。
1 internet概述
internet是一个由众多网络互联而成的世界范围内的计算机网络。从通信的角度来看,internet是一个以TCP/IP统一的标准,将世界范围内多个国家的部门和机构的两层计算机子网联接而成的三层数据网。从资源角度来看,internet是一个集各领域、各学科、各种应用等各种资源为一体的资源数据网。
internet具有以下特点:
(1) TCP/IP是internet的基础与核心,依靠TCP/IP协议实现了网络的互联;
(2) 用户使用internet时无需了解网络底层(物理层和链路层)的结构,十分方便;
(3) 随着internet主干线路与接入带宽的不断拓展,internet最终将取代现有的电话网、数据网和有线电视网,成为三网合一的综合多媒体业务网;
(4) 世界上没有对internet上通信进行统一管理的机构,internet上的许多服务和功能都是由用户开发、经营和管理的,因此从经营角度看internet是一个用户的网络。
2 TCP/IP 协议
internet实现互联的关键是TCP/IP协议。在internet内部,计算机之间互相发送信息包进行通信,TCP/IP协议对这种信息包的传输方式作了具体的规定。
2.1 IP协议(因特网协议)
2.1.1 IP协议概述
IP协议定义在OSI-RM第三层―――网络层,是internet最重要的协议。在IP协议中规定了在internet上进行通信时应遵守的规则,例如IP数据包的组成、路由器如何将IP数据包送到目的主机等。
各种物理网络在链路层(二层)所传输的基本单元为帧(MAC帧),其帧格式随物理网络而异,各物理网络的物理地址(MAC地址)也随物理网络而异。IP协议的作用就是向传输层(TCP层)提供统一的IP包,即将各种不同类型的MAC帧转换为统一的IP包,并将MAC帧的物理地址变换为全网统一的逻辑地址(IP地址)。这样,这些不同物理网络MAC帧的差异对上层而言就不复存在了。正因为这一转换,才实现了不同类型物理网络的互联。
IP协议面向无连接,IP网中的节点路由器根据每个IP包的包头IP地址进行寻址,这样同一个主机发出的属于同一报文的IP包可能会经过不同的路径到达目的主机。
2.1.2 IP协议的功能
IP协议主要具有以下几部分功能:
(1) 寻址
这一功能将在下一节中作为专题进行讨论。
(2) 路由选择
路由选择是以单个IP数据包为基础的,概括而言是确定某个IP数据包到达目的主机需经过哪些路由器。路由选择可以由源主机决定,也可以由IP数据包所途经的路由器决定。
在IP协议中,路由选择依靠路由表进行。在IP网上的主机和路由器中均保存了一张路由表,路由表指明下一个路由器(或目的主机)的IP地址。路由表由目的主机地址和去往目的主机的路径两部分组成。其中,去往目的主机的路径通常是下一个路由器的地址,也可是目的主机的IP地址。
(3) 分段与组装
IP数据包在实际传送过程中所经过的物理网络帧的最大长度可能不同,当长IP数据包需通过短帧子网时,需对IP数据包进行分段与组装。
IP协议实现分段与组装的方法是给每个IP数据包分配一个惟一的标志符,且报头部分还有与分段与组装相关的分段标记和位移。IP数据包在分段时,每一段需包含原有的标志符。为了提高效率、减轻路由器的负担,重新组装工作由目的主机来完成。
2.2 TCP协议(传输控制协议)
2.2.1 TCP协议概述
TCP协议位于OSI-RM第四层―――传输层,是一个端对端、面向连接的协议。该协议弥补了IP协议的某些不足,其中比较突出的有两个方面:一是TCP协议能够保证在IP数据包丢失时进行重发,能够删去重复收到的IP数据包,还能保证准确地按原发送端的发送顺序重新组装数据;二是TCP协议能区别属于同一应用报文的一组IP数据包,并能鉴别应用报文的性质。这一功能使得某些具有四层协议功能的高端路由器可以对IP数据包进行流量、优先级、安全管理、负荷分配和复用等智能控制。
2.2.2 TCP协议的功能
(1) 保证传输的可靠性
TCP协议是面向连接的。所谓连接,是指在进行通信之前,通信双方必须建立连接才能进行通信,而在通信结束后终止其连接。相对于面向无连接的IP协议而言,TCP协议具有高度的可靠性。
当目的主机接收到由源主机发来的IP包后,目的主机将向源主机回送一个确认消息,这是依靠目的主机的TCP协议来完成的。TCP协议中有一个重传记时器(RTO),当源主机发送IP包即开始记时。如在超时之前收到确认信号,则记时器回零;如果记时器超时,则说明该IP包已丢失,源主机应进行重传。对于重传记时器,确定合适的记时时长是十分重要的,它由往返时间来决定。TCP协议能够根据不同情况自动调节记时时长。
需要说明的是,TCP协议所建立的连接是端到端的连接,即源主机与目的主机间的连接。internet中每个转接节点(路由器)对TCP协议段透明传输。
总之,IP协议不提供差错报告和差错纠正机制,而TCP协议向应用层提供了面向连接的服务,以确保网络上所传送的数据包被完整、正确、可靠地接收。一旦数据有损伤或丢失,则由TCP协议负责重传,应用层不参与解决。
(2) 提供部分应用层信息的功能
在TCP协议之上是应用层协议(如FTP、SMTP、TELNET等),最终需依靠它们实现主机间的通信。TCP协议携带了部分应用层信息,可用来区别同一报文数据流的一组IP包及其性质。
TCP协议对这些应用层协议规定了整数标志符,称为端口序号。被规定的端口序号成为保留端口,其值在0~1 023范围内(如端口序号23,用于远程终端服务)。此外还有自由端口序号,供个人程序使用,或者用来区分两台主机间相同应用层协议的多个通信,即两台主机间复用多个用户会话连接。
进行通信的每台主机的每个用户会话连接都有一个插口序号,它由主机的IP地址和端口序号组成。在internet中插口序号是惟一的,一对插口序号惟一地标识了一个端口的连接(发端插口序号=源主机IP地址+源端口序号,收端插口序号=目的主机IP地址+目的端口序号)。利用插口序号可在目的主机中区分不同源主机对同一个目的主机相同端口序号的多个用户会话连接。
在TCP协议段的头部各域中具有码位项。其中,SYN码位为应用数据流的开始位(当SYN置1,表示该IP数据包为某一应用报文的第一份数据包),FIN码位为应用数据流的结束位(当FIN置1时,表示此时数据包为某应用报文的最后一份数据包)。因此可利用SYN/FIN两个码位来规定某一应用报文(或某一应用数据流)的开始与结束。
TCP协议就是利用端口序号和SYN/FIN码位来区分应用数据流并判断其性质的,从而使具有四层功能的高端路由器具有某些对应用数据流的控制功能。
3 TCP/IP 的工作原理
下面以采用TCP/IP协议传送文件为例,说明TCP/IP的工作原理,其中应用层传输文件采用文件传输协议(FTP)。
TCP/IP协议的工作流程如下:
●在源主机上,应用层将一串应用数据流传送给传输层。
●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
●在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
●网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
●传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。
●在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop】
推荐阅读
article
如何减少
建筑
工地
的伤亡事故?这 10 大AI手段来了_基于
机器
学习
的
工地
安全
预测
系统
可以通过分析历史...
通过
实时
分析 7x24小时的视频信号,AI 和
机器
学习
正在减少
建筑
工地
的事故、盗窃与破坏行为和危险的操作环境。同时,还能...
赞
踩
article
软考系统架构师:综合计算应用题_
每片
4k
个
存储
地址
,
每片
有
16k
个
存储
单元
,
每
个
存储
单元
有
几位...
综合计算题_
每片
4k
个
存储
地址
,
每片
有
16k
个
存储
单元
,
每
个
存储
单元
有
几位
每片
4k
个
存储
地址
,
每片
有
16k
个
存储
单元
,
每...
赞
踩
article
用
gbm
包
来
提升
决策树
能力_
gbm
包
怎么处理因子
型
变量
...
中国有句老话:三个臭皮匠,顶个诸葛亮。这个说法至少在变形金刚中得到了体现,没有组合之前的大力神只是五个可以被柱子哥随手秒...
赞
踩
article
springcloud
-
gateway
集成
knife4j
(
swagger3
)_
springcloud
...
对于管控了权限的微服务,应放行以下资源。保证启动了
knife4j
。各微服务&网关引入依赖。_
springcloud
ga...
赞
踩
article
最长
子串
的
长度
_
最长
子
字符串
的
长度
(一)...
最长
子串
的
长度
给定一个
字符串
,请你找出其中不含有重复字符
的
最长
子串
的
长度
。示例 1:输入: “abcabcbb”输...
赞
踩
article
9月
BTE
第8届
广州
国际
生物
技术
大会暨展览会,全
媒体
聚焦下的高精尖
行业
盛会...
权威专家学者齐聚一堂赋能展会,围绕创新药、ADC药物研发进展、重点病原体疫苗开发、细胞治疗、基因治疗、3D细胞培养与类器...
赞
踩
article
微信
小
程序
云
开发
之云
数据
操作_
微信
小
程序
云
数据
库
应该怎么建...
微信
小
程序
开发
工具,最大的优点就是提供丰富的API接口操作,可以独立独立自主的实现的简单的前后端操作,并且云
开发
提供实质...
赞
踩
article
NoSQL
简介...
1.1 什么是
NoSQL
NoSQL
,指的是非关系型的数据库。
NoSQL
有时也称作Not Only SQL的缩写,是对不...
赞
踩
article
React
中
redux
、
react
-
redux
、@
redux
js/
toolkit
状态管理库的使用方式...
【代码】
React
中
redux
、
react
-
redux
、@
redux
js/
toolkit
状态管理库的多种使用方式。Rea...
赞
踩
article
C语言
运行
时库
详解_
c
get
c
ommandline...
网址:http://blog.
c
sdn.net/jxth152913/ar
c
hive/2010/07/02/570836...
赞
踩
article
MongoDB
的
安装
配置与
操作
_
mongodbshell
安装
...
/创建成功会显示{“ok”:1}db.copyDatabase("mydb", "temp", "127.0.0.1")...
赞
踩
article
win
进程崩溃弹出
Microsoft
Visual
C++
Runtime
Library
的
解决办法
...
很多软件通过设置自己的异常捕获函数,捕获未处理的异常,生成报告或者日志(例如生成mini-dump文件),达到Relea...
赞
踩
article
在
JavaScript
中
播放
音频
文件
_js
播放
音频
...
我们可以使用标签将
音频
文件
添加到页面中。这是
播放
音频
文件
而不涉及
JavaScript
的最简单方法。标签的src属性指...
赞
踩
article
【分布式数据库】
HBase
表
创建
(
压缩
、编码、预
分区
)_
hbase
分区
表
...
一、
HBase
表
创建
示例 如下
创建
了一张称为‘ win_kangll_day’的
表
,
表
中只有一个列族’d’,紧接着的属性...
赞
踩
article
多元时序:利用
MATLAB
实现
LSTM
神经网络
进行
多变量
时间
序列
预测
...
我们首先准备了数据集,然后构建了
LSTM
模型并
进行
了训练。最后,我们使用训练好的模型
进行
预测
,并评估了模型的性能。在上面...
赞
踩
article
MySQL
-3-
创建
表
、
删除
表
、
增删改
、
约束
、
索引
_掌握
索引
、
视图
的
创建
,基本
表
的
增删改操作...
注意:
索引
虽然可以提高检索效率,但是不能随意地添加
索引
,因为
索引
也是数据库中地对象,也需要数据库不断地维护。比如,
表
中地...
赞
踩
article
nerf
三维重建
...
Nerf(Neural Radiance Fields)是一种用于
三维重建
和图像合成的机器学习技术。它基于深度学习,使用...
赞
踩
article
PHP
+
mysql
移动
办公
微
应用
系统小
程序
源码51406_
办公
小
程序
源码...
免费领取项目源码,请关注●点赞收藏并私信博主,谢谢-、
移动
办公
微
应用
系统小
程序
的设计主要是对系统所要实现的功能进行详细考...
赞
踩
article
代码
训练
LeetCode
(6)
编辑
距离
...
这种表面一看,似乎是个字符串问题,但是如果按照分类匹配去做,怕是很难得出合理的方法。求两个字符串的
编辑
距离
实际是个动态规...
赞
踩
article
miui
删除
内置
不卡米教程_小米
MIUI
免
root
一键
删除
系统
内置
软件!!...
小米删
内置
软件 小米
MIUI
免
root
一键
删除
系统
内置
工具(系统精简),精简
MIUI
系统程序,将手机连接PC后运行MIU...
赞
踩
相关标签
深度学习
人工智能
机器学习
系统架构
swagger3
微服务集成swagger3
微服务集成knife4j
api文档微服务集成
媒体
微信小程序
小程序
nosql数据库
react.js
redux
react-redux
reduxjs/toolkit
状态管理库
javascript
es6
c
语言
string
object
编译器