关键词:
1.计算机网络背景
1.1网络发展
计算机体系结构本质也可以被看做是一个小型网络。计算机与计算机之间也是用“线”连接起来的。与其说两台计算机通信,本质上其实也是通过“线”链接起来。不过是“线”长了一点(网线,无限LAN)。
- 独立模式:计算机之间相互独立;
- 网络互联:多台计算机连接在一起,完成数据共享;
那么我们一般一台计算机内,把外设和内存之间的“线”称作IO总线。CPU和内存之间的“线”称作系统总线,我们常见的有32位/64位。
那么我们此时需要面对一个问题,在主机内,“线”比较短;跨主机,“线”比较长。而当“线”比较短时,数据之间会发生信号干扰;而“线”比较长时,数据的可靠性就降低了,以及效率变低,以及存在寻找对方的问题。
局域网和广域网
计算机网络,根据其规模可分为WAN(Wide Area Network,广域网)和LAN(Local Area Network,局域网)。
局域网LAN:计算机数量更多了,通过交换机和路由器链接在一起。(一栋楼或大学校园中有限的,狭小的,区域内网络)
广域网WAN:将远隔千里的计算机都连在一起;
1.2 协议
“协议” 是一种约定。这种约定使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。两台计算机必须能够支持相同的协议,并遵循相同协议进行处理,这样才能实现相互通信。
思考:只要通信的两台主机,约定好协议就可以了么?
- 计算机生产厂商有很多
- 计算机操作系统也有很多
- 计算机网络硬件设备还是有很多
- 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来约定一个共同的标准,大家都来遵守,这就是网络协议
2.网络协议初识
2.1协议分层
通信协议设计指标的OSI参考模型。这一模型将通信协议中必要的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。
2.2OSI七层模型
- OSI(Open System Interconnection,开放系统互连) 七层网络模型称为开放式系统互联参考模型是一个逻辑上的定义和规范;
- 把网络从逻辑上分为7层,每一层都有相关,相对应的物理设备,比如路由器,交换机;
- OSI七层模型上是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输
- 他的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次的结构模型使不同的系统不同的网络之间实现可靠的通讯。
但是由于OSI七层模型既复杂又不实用,因此我们经常使用TCP/IP四层模型
2.3 TCP/IP 五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
- 物理层:负责光/电信号的传递方式比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆 (现在主要用于有线电视)、光纤, 现在的wififi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
- 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
- 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
- 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
- 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层。
由于物理层我们考虑的比较少,因此很多时候也可以称为TCP/IP四层模型。
一般而言:
- 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容
- 对于一台路由器,它实现了从网络层到物理层
- 对于一台交换机,它实现了从数据链路层到物理层
- 对于集线器,它只实现了物理层。
但是并不绝对,很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)
网络和操作系统之间的关系
TCP/IP协议和操作系统的关系是:操作系统内部,有一个模块,就叫做TCP/IP协议,网络协议栈是隶属于OS的!
那么两台主机之间进行通信的时候,同层协议都认为自己在和对方直接通信!
2.4重谈协议 -- 计算机的视角,如何看待协议?
举个例子,我们在网上购买一个鼠标。你和卖家沟通好,买了一个鼠标,实际上快递员给你的是一个包裹,里面有鼠标。
实际上,快递员多给了我们一些东西!快递单。这个快递单上填的一些数据。这些数据不是给你用的,是给快递公司用的。快递单多出来的这些数据是快递公司和快递点和快递小哥之间的协议!
为了维护协议,一定要在被传输的数据上新增其他数据。这个新增的其他数据我们叫做协议数据。
2.5 网络传输基本流程
网络传输流程图
同一个网段内的两天主机进行文件传输。
我们把每一层要交付给下一层的数据,给他添加上本层“多出来的协议数据”拼接在原始数据的开头叫做报头.
跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
数据包封装和分用
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame).
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称谓封装
- 首部信息中包含了一些类似于首部有多长,载荷有多长,上层协议是什么等信息
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥夺相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理
下图为数据封装的过程
下图为数据分用的过程
3.网络中的地址管理
3.1认识IP地址
IP协议有两个版本,IPv4和IPv6,我们凡是提到IP协议,如果特殊说明的,默认都是值IPv4
- IP地址是在IP协议中,用来标识网络中不同主机的地址;
- 对于IPv4来说,IP地址是一个4字节,32位的整数
- 我们通常也是用“点分十进制”的字符串表示IP地址,例如:192.168.0.1;用点来分割每一个数字表示一个字节,范围是0-255;
3.2认识MAC地址
每一台主机都要有唯一的标识,就是该主机对应的MAC地址!
任何一台主机,在任何时刻都可以随时发消息。我们把这种局域网的情况叫做 碰撞域 -- 无法准确的听到对应的消息 -- 每一台主机也能识别发生了碰撞(碰撞检测) -- 碰撞避免 -- 如果没人说话我再说话
- MAC地址是用来识别数据链路层中相连的节点;
- 长度为48位,即6个字节,一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
- 在网卡出厂时就确定了,不能修改,MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置mac地址)
在云服务器下查看MAC地址
ifconfig 可以查看MAC地址
ether:以太
其中“从哪儿来” -> "到哪里去" -- 对应IP 地址 ;"上一站从哪儿来"-- "下一站到哪儿去" 对应的是MAC地址。
MAC地址用来在局域网中标定主机的唯一性
IP地址在广域网中(公网),标定主机的唯一性。
结论:
- 一般而言,任何报头属性里面一定要存在的一些字段要支持进行封装和解包
- 一般而言,任何报头属性里面一定要存在的一些字段支持,我们要进行分用
linux--网络(网络协议,传输及地址管理)
...协议分层--OSI七层模型1.2协议分层--TCP/IP五层/四层模型二.网络传输基本流程2.1数据封装2.2数据分用三.网络中地址管理3.1IP地址网络解决的问题是牵扯到数据双方的。一定会存在数据发送方和数据接收方。而此时的发送方和接收方... 查看详情
网络基础背景-协议-osi模型-tcp/ip模型-网络传输-地址管理(代码片段)
...概述网络协议OSI七层模型TCP/IP五层(或四层)模型分层介绍网络传输基本流程数据的封装和分用封装分用网络中的地址管理IP地址MAC地址两台主机通讯过程跨网段主机通讯过程计算机背景知识网络发展计算机之间是相互独立的当不... 查看详情
网络基础
...网络协议初识2.1TCP/IP五层(或四层)模型三,网络传输基本流程3.1网络传输流程图3.2数据包封装和分用3.3网络中的地址管理总结前言本节重点:了解网络发展背景,对局域网/广域网的概念有基本认识了解网络协议... 查看详情
网络基础
...网络协议初识2.1TCP/IP五层(或四层)模型三,网络传输基本流程3.1网络传输流程图3.2数据包封装和分用3.3网络中的地址管理总结前言本节重点:了解网络发展背景,对局域网/广域网的概念有基本认识了解网络协议... 查看详情
网络基础——网络大致框架
...层 2.2.1OSI七层模型 2.2.2TCP/IP五层(四层)模型三.网络传输基本流程 3.1网络传输流程图 3.1.1对封装和分用的理解 3.1.2局域网通讯原理 3.1.2 同一网段两主机进行数据传输 3.1.3跨网段的主机的传输 ... 查看详情
linux网络基础--为socket编程做准备(代码片段)
...构模型▶网络中的地址管理🎄IP地址🎄MAC地址▶网络传输基本流程🎄同一网段内两台主机进行文件传输🎄数据包封装和 查看详情
网络网络基础(代码片段)
...识2.1协议分层2.1OSI七层模型2.2TCP/IP五层(或四层)模型三、网络传输基本流程3.1网络和操作系统3.2网络传输流程图3.3数据包封装和分用四、网络中的地址管理4.1认识IP地址4.2认识MAC地址一、计算机网络背景1.1网络发展独立模式:... 查看详情
1-21网络管理相关的命令
大纲:1.1-网络协议的应用和TCP连接了解常见的网络相关协议TCP三次握手和四次挥手1.2-RHEL7.网络管理网络相关的调试命令实战tcpdump和tshark抓包网络协议的应用和连接常见网络协议:ARP(AddressResolutionProtocol)协议:IP地址解析... 查看详情
linux篇第十七篇——网络基础(概念+协议的认识+osi七层模型+tcp/ip五层模型+网络传输的流程)(代码片段)
...SI七层模型🌲TCP/IP五层(或四层)模型🌏网络传输的基本流程🌲数据的封装和分用🌲局域网通信🌲跨网络通信🌏网络中的地址管理🌲认识IP地址🌲认识MAC地址🌲通过指令查看IP和MAC... 查看详情
四步帮你搞定网络编程之第一步
...议分层2.1 OSI七层模型2.2 TCP/IP五层(或四层)模型三:网络传输基本流程3.1 网络传输流程图 3.2 数据包封装和分用四:网络中的地址管理4.1 认识IP地址4.2 认识MAC地址总结一:初识网络协议1.1什么叫协议 顾名思义... 查看详情
转载dhcp流程
...:http://network.51cto.com/art/201406/441752.htmDHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。DHCP几个概... 查看详情
网络网络基础
...09;结构2.TCP/IP模型(1)介绍(2)结构三、网络传输基本流程1.数据包封装和分用(1)介绍(2)过程2.TCP/IP通信过程四、网络中的地址管理1.IP地址2.认识MAC地址感谢阅读,如有错误请批评指正前... 查看详情
网络协议复习
...IP地址共有五类ABCDE。对于ABC类地址,IP地址都可以划分为网络标识和主机标识。从一个IP地址中提取网络地址要用网络掩码和IP地址进行与运算。IP地址最初是两级编址,但是这会存在极大的地址浪费,并且不利于管理。在子网划 查看详情
网络管理
osi模型应用层:为网络进程提供网络服务,提供身份验证表示层:格式化构建数据,提供加密会话层:建立管理终止应用之间的会话传输层:确保数据传输可靠性,建立维护终止虚拟电路,通过错误检测和恢复网络层:定义逻辑... 查看详情
linux一文带你探究网络世界的基石
...1f448;什么是协议协议分层OSI七层模型TCP/IP五层模型👉网络传输基本流程👈局域网通信原理数据包封装和分用不同局域网的通信原理👉网络中的地址管理👈认识MAC地址和IP地址IPv4地址不足问题IPv6为何推广缓慢... 查看详情
linux网络基础--为socket编程做准备(代码片段)
...构模型▶网络中的地址管理🎄IP地址🎄MAC地址▶网络传输基本流程🎄同一网段内两台主机进行文件传输🎄数据包封装和分用▶网络发展背景了解🎄网络发展独立模式:独立模式下,没有网络,各... 查看详情
linux--网络4(网络层)
...版本的IP地址1.2.2IP地址的早期划分方式:二.路由选择网络层完成了路由选择与地址管理。一.IP协议1.1IP协议格式协议头格式如下图所示: 4位版本:表示的是IPV4版本 0100 4位首部长度:二进制数字计算出来的是数... 查看详情
网络通信流程
互联网的本质是一系列网络协议。网络协议的目标就是将全世界每台电脑上的每个应用程序都唯一标识,并且以最快的速度发现这两个标识,才能进行网络通信。1,本机获取: 本机的ip地址:192.168.1.100  ... 查看详情