Linux网络管理——TCP/IP四层模型
1. 网络基础
.note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;}
.note-content h2 {line-height: 1.6; color: #0AA89E;}
.note-content {background: #FFFFFF;}
.note-content h1 {color: #7AB3A7;}
.note-content h3 {color: #147A67;}
1. 网络基础
1.2 TCP/IP四层模型
1.应用层<---------------------------应用层,表示层,会话层
2. ↓
3.传输层<---------------------------传输层
4. ↓
5.网际互联层<------------------------网络层
6. ↓
7.网络接口层<------------------------数据链路层,物理层
OSI 7层模型仅仅只是模型,而在实际传输中应用的是TCP/IP 4层模型。举个栗子,OSI 7层模型仅仅是个车模,而TCP/IP 4层模型是实际生产的原型车。
○ 网络接口层
它负责监视数据在主机和网络之间的交换。
而事实上,TCP/IP本身并没有定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。
地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。
Windows下可以使用arp -a
查看ARP(linux下也可以使用arp
),它的作用是把IP地址翻译成网卡物理地址(MAC地址)。再举个栗子,IP地址相当于门牌号,而MAC地址相当于屋子里的某一个人,数据的传输需要像邮差送信,信送到某户人家,然后再被送到某个人的手中。IP地址是在公网中传输需要,而MAC地址是在局域网中传输需要。
○ 网际互联层
它主要解决主机到主机的通信问题。
它所包含的的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
其中ICMP协议就是我们用来ping
的协议。平时我们说ping
一下,看是否能够ping通:
1.[KANO@kelvin ~]$ ping 114.114.114.114 -c 4
2.PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
3.64 bytes from 114.114.114.114: icmp_seq=1 ttl=90 time=33.3 ms
4.64 bytes from 114.114.114.114: icmp_seq=2 ttl=71 time=34.9 ms
5.64 bytes from 114.114.114.114: icmp_seq=3 ttl=79 time=34.9 ms
6.64 bytes from 114.114.114.114: icmp_seq=4 ttl=89 time=34.6 ms
7.
8.--- 114.114.114.114 ping statistics ---
9.4 packets transmitted, 4 received, 0% packet loss, time 3003ms
10.rtt min/avg/max/mdev = 33.300/34.478/34.982/0.703 ms
11.
这里就是利用了ICMP协议,给我们指定的计算机发送一个数据包。如果它回应了,那么证明我们两个的网络是通的。
○ 传输层
它为应用层实体提供端到端的通信功能,保证了数据包的顺序传送以及数据的完整性。
该层协议定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。
TCP/IP三次握手
比如说:如果主机A想跟主机B进行通信
主机A首先发起一个握手信号SYN给主机B”问你在吗”—————->主机B收到握手信号SYN,就发送回应包ACK给主机A”我在”,同时也发送一个信报SYN问”你还在吗”—————->这个时候主机A就会发送一个ACK响应它说”我在,我要跟你发送数据了”——————>最后建立通信,主机A向主机B发送信息
在数据传输过程中,双方始终有沟通,只要有一个数据传错了,那么主机B就会马上告诉主机A说传错了,要重传。
所以TCP/IP协议是面向连接的可靠的协议
而UDP协议,不管你在不在,就直接把数据发出去。它的好处是更快,但是有可能会丢包
简单说来,TCP协议像打电话,接通后问我是谁你是谁,双方确认之后,开始正式交谈,交谈中说错了对方会发出警告,然后重说。而UDP协议更像发短信,一条短信发过去,能及时收到,但是也有可能发送不成功。
QQ聊天的时候使用的就是UDP协议,发送过去更快,但是有的时候会提示”你发送的信息没有到达”
○ 应用层
它为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等。
数据封装过程
1.应用数据------------------------------------------------->字节流(数据)
2.应用层--------------------------------------------------->FTP头| 数据
3.传输层-------------------------------------------->TCP头| FTP头| 数据
4.网络层-------------------------------------->IP头| TCP头| FTP头| 数据
5.数据链路层-------------------------->以太帧头| IP头| TCP头| FTP头| 数据
6. ↑ IP数据报 ↑
7. 以太帧头| 目的地址| 源地址| 包类型| 包数据 | CRC
8. ↑IP数据报↑
最新文章
- 关于印发利用DEM确定耕地坡度分级技术规定(试行)的通知
- 无题的题 &; 模拟退火...
- iOS 8.1.3 “各路助手挺尸”、“封杀一切助手
- OpenCV IplImage FlyCapture2 Image Conversion 两种图像类的相互转化
- 二分图点染色 BestCoder 1st Anniversary($) 1004 Bipartite Graph
- 深入学习Oracle分区表及分区索引
- Word删除复制后产生空行
- hdu2044java
- Python给小说做词云
- Python初学——多进程Multiprocessing
- 工作常用git命令
- SQLite学习手册(实例代码<;一>;)
- 同样级别iOS程序员,为啥比我菜的程序员薪资都比我高?
- CSU1333最短路问题SPFA
- ans Single VIP LLB and SLB config
- springmvc实现文件上传
- ROS-by-example的安装
- Jquery停止动画
- c# winform调用摄像头识别二维码
- 万恶的deferred_segment_creation(延迟块分配)
热门文章
- MYSQL报Fatal error encountered during command execution.错误的解决方法
- JavaScript 中 关于 this 的学习笔记
- 在.NET中使用iTextSharp创建/读取PDF报告: Part I [翻译]
- FIFO算法
- hadoop生态圈安装详解(hadoop+zookeeper+hbase+pig+hive)
- HDU 1017 - A Mathematical Curiosity
- nginx 学习笔记【持续更新...】
- Android L 之 RecyclerView 、CardView 、Palette
- jquery ajax后台向前台传list 前台用jquery $.each遍历list
- 利用C#轻松创建不规则窗体