回顾下TCP/IP协议
首先要知道什么是TCP/IP协议,从字面意思来看TCP是“Transmission Control Protocol”的缩写,也就是传输控制协议。IP是“Internet Protocol”的缩写,即因特网控制协议。
其次,TCP/IP并不只是包含TCP和IP,而是指我们实现网络通讯用到的协议簇。下图中从应用层到数据链路层即为TCP/IP协议模型,也就是说TCP/IP协议为4层模型而OSI(Open System Interconnect)为7层。
下面我们看下实际过程中的信息传输是怎么通过TCP/IP协议模型来理解的:
- 个人PC在应用层请求发送数据DATA。
- 在主机到主机层(传输层,TCP协议层),建立端到端的报文传输,因此需要提供上层数据传输下来时使用的源端口(随机产生的),以及目的端口(也就是个人PC和远程Server之间在应用层使用的协议对应的端口号,比如HTTP协议对应80)。
- 在因特网层(IP协议层,网络层),又加了个包含PC(源IP)和Server(目IP)的ip地址的IP头。(协议号6对应上层为TCP协议)
- 在数据链路层,需要PC将数据传输给网关,此时需要 把PC和网关的MAC加到数据前面。(下图中的类型0x0800表示上一层为以太网层,且后面为IP包)
- 实际上在数据链路层的数据为帧的形式,而在物理链路上的数据是以比特流或者电气化的脉冲传输的,因此数据帧先要转化为bit流再进行传输。
- 网关在接收到bit流之后会把它转化为数据帧。通过以太网帧头发现目的MAC为自己的,知道是发给自己的,然后通过类型0x0800知道里面的是IP包。
- 网关首先会校验下源IP是否受损,没有的话进一步解封数据帧,发现目的IP不是自己的,通过路由表查找,如果有就将数据加上自己的WAN mac(GE0/0/1)和目的路由器的WAN mac(GE0/0/0)组成新的以太网帧头继续传输给目的路由器。
- 网关R2收到数据后,解封以太网帧头,发现目地MAC为自己,进一步查看IP头,发现目的IP不是自己,查找路由表发现刚好是自己直连的Server,进而将自己的MAC和Server的MAC组成新的以太网帧头,发送给Server。
- 最后终于来到了Server。首先,Server会将bit流转为数据帧,然后解封数据帧,发现目的MAC是自己,进一步查看IP头校验目的IP发现也是自己,继续打开TCP头,得知目的端口为80代表是HTTP应用的数据,而自己的80端口也是打开的,所以最后交给自己的HTTP应用程序处理。
备注:
- 所有目的MAC全部都是通过ARP(Address Resolution Protocol,地址解析协议)广播获取,也就是说PC会把数据帧发送给所有与它相连的网关。
- 以上所有截图全部来自《数通网络知识手册v1.2.pdf》--朱仕耿。
回顾下TCP/IP协议的更多相关文章
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- socket、tcp/ip协议、udp协议
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...
- TCP/IP协议族(一)
TCP/IP协议族(一) HTTP简介.请求方法与响应状态码 接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的. ...
- TCP/IP协议原理与应用笔记05:TCP/IP协议下的网关
大家都知道,从一个房间走到另一个房间,必然要经过一扇门.同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关.顾名思义,网关(Gateway)就是一个网络连接到另一个网络的& ...
- iOS的TCP/IP协议族剖析&&Socket
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 简介 该篇文章主要回顾--TCP/IP协议族中的TCP/UDP.HTTP:还有S ...
- 深入浅出--iOS的TCP/IP协议族剖析&&Socket
深入浅出--iOS的TCP/IP协议族剖析&&Socket 简介 该篇文章主要回顾--TCP/IP协议族中的TCP/UDP.HTTP:还有Socket.(--该文很干,酝酿了许久! ...
- TCP/IP协议、三次握手、四次挥手
1.什么是TCP/IP协议 TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议 1) 网络接口层: 主要是指物理层次的一些接口,比如电缆等. ...
- TCP\IP协议实践:wireshark抓包分析之链路层与网络层
目录 TCP\IP协议实践:wireshark抓包分析之链路层与网络层 从ping开始 链路层之以太网封装 ip首部 开启ping程序,开始抓包 由一个ping的结果引出来的两个协议ARP ICMP ...
- 深入浅出-TCP/IP协议族剖析&&Socket
Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 #简介 该篇文章主要回顾–TCP/I ...
随机推荐
- LA5713 秦始皇修路 (mst)
题意: 秦朝有n个城市,需要修路让每个城市都互相连通,现在可以免费修一条路,秦始皇希望他除了这条免费修的路外所需修的路的总和B最短,同时这条免费的路连接的人口之和A尽可能大,求最大的A/B是多少,城市 ...
- jupyter notebook设置主题背景,字体和扩展插件
windows上安装Anaconda (IPython notebook) Anaconda是一个包与环境的管理器,一个Python发行版,以及一个超过1000多个开源包的集合.它是免费和易于安装的, ...
- 起床困难综合症 NOI_2014_D1T1
这道题的正解其实没什么好说的,反而是部分分设计非常巧妙. 之所以要单开一篇是因为当时机房的部分同学刚学位运算,我拿这个题去讲想毒瘤大家一下,于是做了一个挺好看的课件. ppt -> pdf -& ...
- 集合之保持compareTo和equals同步
在Java中我们常使用Comparable接口来实现排序,其中compareTo是实现该接口方法.我们知道compareTo返回0表示两个对象相等,返回正数表示大于,返回负数表示小于.同时我们也知道e ...
- 【转】Tomcat 9.0安装配置
本文转自:http://blog.sina.com.cn/s/blog_15126e2170102w5o8.html 一.JDK的安装与配置 1.从官网下载jdk,注意是jdk不是jre.最好从官网下 ...
- List集合和iterator并发异常处理
一:List接口: 子类:ArrayList LinkedList 特点:Unlike sets, lists typically allow duplicate elements.不像set集合 ...
- modbustcp封装使用获取设备数据示例
//接受数据请求public function client($pz){ //参数1是:网络协议, //AF_INET: IPv4 网络协议.TCP 和 UDP 都可使用此协议.一般都 ...
- 名字&值
1)名字VS值 名字和内存(存储)位置相关联. 名字—(环境)———>位置——(状态)——>值 这两个映射都在随着程序的运行而改变. 2)环境VS状态 环境是指一个名字到存储位置映射,也可 ...
- laravel 5.5 《电商实战 》安装应用
最近开始接触电商业务.公司打算采用lavarel做后端的开发,出于学习成本和时间的考虑.自己找到了一个不错的收费教程.这段时间会同步更新,分享自己的学习过程. 自己的开发环境,mac+nginx+my ...
- Android TV 全屏无标题
想要全部窗口全屏无标题,修改 res\values\styles.xml 可设置主题和样式 <resources> <!-- Base application theme, depe ...