请听题:一个数据包如何在网络中传递?

传统的OSI参考模型和TCP/IP模型的关系和区别

TCP/IP模型

在网络上,一个协议对应于管理系统之间如何相互通信的规则 OSI模型和TCP/IP模型是现在网络中常用的协议 指定通信的规则为了保障客户的权益(在客户的现网中 会出现不同厂商的网络设备)

目前应用的比较广泛的是TCP/IP模型

TCP/IP模型

应用层:APP层 腾讯QQ 微信 开发工程师 程序员
DHCP协议 DNS协议等等
传输层:TCP协议 UDP协议 防火墙设备 安全工程师
TCP协议 UDP协议
网络层:(三层)路由器或者三层交换机 网络工程师
OSPF协议 ICMP协议(ping tracert)
链路层:(二层)二层交换机 网络工程师
stp协议 vlan
物理层:网线(双绞线)

总结

网工工程师一定要关注我们网络层和链路层
安全工程师要关注 传输层 应用层
程序员 只需要关注应用层

网工发展路径

路由交换--->>>数通安全--->>>云计算--->>>Ptyhon语言
网络工程师 安全工程师 云计算工程师 开发工程师

深入理解TCP/IP模型当中每一层代表协议和重要字段

应用层

传输层协议+端口号等于应用层协议
TCP协议+23端口=telnet协议(应用层)
常见的应用层协议:telnet协议、dns协议等

传输层

源端口号 目标端口号 端口号共16bit 2的16次方=65536 端口号的范围就是0~65535(其中0~1023是一些知名端口 1024~65535是非知名端口)
一般来说源端口号是随机的(取值是1024~65535)
目标端口号一般来说都是一些知名端口(0~1023端口)
端口号的理解:代表一个主机的不同服务

web服务:192.168.1.1:80
telnet服务:192.168.1.1:23

常见端口号:80端口、23端口、22端口、21端口

网络层

简称为三层 三层里面有一个逻辑地址 比如:192.168.1.1
源IP地址 目标IP地址
一般情况下 在数据包的传递过程中 SIP和DIP不会发生变化

链路层

简称二层 二层里面有一个物理地址 比如:0823-abcd-cc33 这个地址叫做MAC地址 全球标识我们网络设备的
源mac地址 目标mac地址
一般情况下 在数据包的传递过程中 SMAC和DMAC是不断变化的

MAC地址这一块分为两部分 前24bit是由美国那边组织分配给厂商这边 后面24bit是由厂商自行分配给网络设备

物理层

网线(光纤)

两台电脑之间数据传递过程中的封装和解封装

数据的封装


数据在发送之前会进行封装
APP头部 数据
UDP头部 APP头部 数据
IP头部 UDP头部 APP头部 数据
以太网头部 IP头部 UDP头部 APP头部 数据
就会变成比特流传输传输给对端

总结:逐渐加头部的过程 是从应用封装到物理层

数据解封装

当服务器接收数据流量的时候 我这边会进行解分装
首先会接收比特流
IP头部 UDP头部 APP头部 数据
UDP头部 APP头部 数据
APP头部 数据
数据

总结:逐渐去掉头部的过程 是从物理层解封装到应用层

动态观看如下动画

原文地址:https://blog.51cto.com/13817711/2454521

时间: 2024-08-01 06:29:47

请听题:一个数据包如何在网络中传递?的相关文章

ping不通,找房东-----从一个ping包来解析网络转发原理

"房东,我ping不通了",相信在外打工租房的各位都有过这个经历吧.ping不通,一个简单的现象,其实蕴藏着很多的过程,今天我们就来谈谈,ping不通该怎么办. 在说这些之前,先介绍几个概念:1.ping包ping包走的是ICMP协议,什么是ICMP协议呢,Internet控制报文协议,字面意思不好理解,作用很简单,就是发送一些控制消息,来检测链路. 要了解一个协议,我们一般先看它是怎么封装的,查什么书籍都是假的,最好的办法就是自己去抓一个包看看,抓包的工具有很多种,我喜欢用wires

Linux内核--网络栈实现分析(二)--数据包的传递过程(上)

本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7492423 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析.”(下)“表示分析是从上向下分析. 上一篇博文中我们从宏观上分析了L

【转载】串口中怎样接收一个完整数据包的解析

这里以串口作为传输媒介,介绍下怎样来发送接收一个完整的数据包.过程涉及到封包与解包.设计一个良好的包传输机制很有利于数据传输的稳定性以及正确性.串口只是一种传输媒介,这种包机制同时也可以用于SPI,I2C的总线下的数据传输.在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题. 一.根据帧头帧尾或者帧长检测一个数据帧 1.帧头+数据+校验+帧尾 这是一个典型的方案,但是对帧头与帧尾在设计的时候都要注意,也就是说帧头.帧尾不能在所传输的数据域中出现,一旦出现可能就被误判.如果用中断来

数据包传输的全过程

第一个 什么是FTP? FTP是英文File Transfer Protocol的缩写,意思是文件传输协议.它和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件.相比于HTTP,FTP协议要复杂得多.复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令:另一个是数据链路,用来上传或下载数据. FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式. PORT(主动)方式的连接过程是:客户

使用linux系统命令实现ip隧道,完成数据包上行下行分离

当前有这样一个场景,客户A到服务器B去GET一个http请求,中间要过一个防火墙,防火墙要监控GET请求,如果发现会进行截断. 这里有2个要求: 1.客户端A如果抓包,发现自己连接的服务器是B的ip 2.服务器端如果转,发现连接自己的是客户端A 3.如果有中转服务器,不能承受太大的压力 如此一来,A就不能使用普通的vpn服务到达B,因为通过普通的vpn服务后,服务器B看见的是VPN服务器的ip地址而不是客户端A的ip地址. 这里考虑用ip隧道来实现,只将用户的上行请求通过ip隧道送到防火墙外面,

交互式数据包处理程序 Scapy 入门指南

概述 Scapy 是一个强大的交互式数据包处理程序(使用python编写).它能够伪造或者解码大量的网络协议数据包,能够发送.捕捉.匹配请求和回复包等等.它可以很容易地处理一些典型操作,比如端口扫描,tracerouting,探测,单元测试,攻击或网络发现(可替代hping,NMAP,arpspoof,ARP-SK,arping,tcpdump,tethereal,P0F等).最重要的他还有很多更优秀的特性--发送无效数据帧.注入修改的802.11数据帧.在WEP上解码加密通道(VOIP).AR

Wireshark抓包分析---分析数据包

Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在Packet Details面板中.为了帮助用户能够清楚的分析数据,本节将介绍识别数据包的方法. 在Wireshark中关于数据包的叫法有三个术语,分别是帧.包.段.下面通过分析一个数据包,来介绍这三个术语.在Wireshark中捕获

Linux内核中网络数据包的接收-第一部分 概念和框架

与网络数据包的发送不同,网络收包是异步的的,因为你不确定谁会在什么时候突然发一个网络包给你,因此这个网络收包逻辑其实包含两件事:1.数据包到来后的通知2.收到通知并从数据包中获取数据这两件事发生在协议栈的两端,即网卡/协议栈边界以及协议栈/应用边界:网卡/协议栈边界:网卡通知数据包到来,中断协议栈收包:协议栈栈/应用边界:协议栈将数据包填充socket队列,通知应用程序有数据可读,应用程序负责接收数据.本文就来介绍一下关于这两个边界的这两件事是怎么一个细节,关乎网卡中断,NAPI,网卡poll,

数据包的接收过程

网络栈的层次结构: 我们就从最底层开始追溯一个数据包的传递流程. 1.网络接口层 * 硬件监听物理介质,进行数据的接收,当接收的数据填满了缓冲区,硬件就会产生中断,中断产生后,系统会转向中断服务子程序. * 在中断服务子程序中,数据会从硬件的缓冲区复制到内核的空间缓冲区,并包装成一个数据结构(sk_buff),然后调用对驱动层的接口函数netif_rx()将数据包发送给链路层.该函数的实现在net/inet/dev.c中,(在整个网络栈实现中dev.c文件的作用重大,它衔接了其下的驱动层和其上的