网络基础

文章目录

网络发展

  • 独立模式: 计算机之间相互独立 ; 网络互联: 多台计算机连接在一起, 完成数据共享
  • 因为人和人之间数据要互相协作,所以网络的出现是必然的,同时随着网络发展,必然会产生新的物理级别的设备

协议

"协议"是一种约定,计算机协议就是计算机之间的约定,目的是减少通信时的沟通成本

网络分层结构

  • 软件分层

    软件分层是一种常用的组织代码的方式,它将一个软件系统分解成多个层次,每个层次都有自己的职责和功能。层与层之间是松耦合的,可以随时替换,方便维护。

  • 网络分层(为什么要存在网络协议?为什么要协议分层?)

    因为互联网通信双方的距离变远了,必定会引发新的问题:

    1.如何使用数据的问题

    2.可靠性问题(数据丢包或顺序不一致)

    3.主机定位的问题

    4.数据包局域网转发的问题

    为了解决这些问题,有人提出了网络协议,所以网络协议本质是一个解决方案,如何衡量一个方案的好与坏?好的方案一定要方便维护且可扩展,所以网络协议就是层状结构

  • OSI七层模型

分层名称 功能 每层功能概览
应用层 针对特性应用的协议 针对每个应用的协议
表示层 备固有数据格式和网络标准数据格式的转换 接收不同表现形式的文件,如文字流、图像、声音等
会话层 通信管理。负责建立和断开通信连接。管理传输层以下的分层 何时建立连接,合适断开连接以及保持多久的连接
传输层 管理两个节点之间的数据传输负责可靠传输(确保数据被可靠的传送到目标地址) 是否有数据丢失
网络层 地址管理与路由选择 经过哪个路由传递到目标地址
数据链路层 互联设备之间传送和识别数据帧 数据帧与比特流之间的转换
物理层 用'0'和'1'表示高低电压,灯光的闪灭 比特流与电子信号的转换、连接器与网线的规格

因为OSI七层模型复杂又不实用,所以实际中用的是TCP/IP五层(或四层)模型

  • TCP/IP五层模型 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.

    数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
    网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
    传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
    应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

互联网因为通信双方距离变远,引发的问题:

1.如何使用数据的问题 ------ 应用层

2.可靠性问题(数据丢包或顺序不一致) ------ 传输层

3.主机定位的问题 ------- 网络层

4.数据包局域网转发的问题 ------- 数据链路层

物理层我们考虑较少,因此很多时候也可以称为TCP/IP四层模型

  • 网络和OS之间的关系


windows和linux操作系统在系统上可能有很多差别,但在网络上,双方必须使用相同的数据类型,所以经过传输,对方一定认识每个字段的大小,含义,这样不同系统之间就可以进行网络通信了。

世界上所有的操作系统只要想入网,就必须遵守TCP/IP协议,保证不同主机之间的数据通信
所以站在语言角度,协议就是双方都能识别的结构体数据类型

局域网通信

局域网中的任意两台主机可以直接通信
每台主机都有网卡,每张网卡都有自己的地址,即MAC地址,MAXC地址标示网卡的唯一性

  • 以太网
    任何时刻只允许一台主机在局域网中发送消息,通过碰撞域和碰撞检测来完成通信的。

OS和网络一统:局域网是一个临界资源

应用层数据通过协议栈发送到网络上时,报文不断被自顶向下交付的过程中,要添加每一层的协议报头,叫做封装。

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。

解包和分用:任何协议(特殊情况暂不考虑)

  • 1.同层协议将包头和有效载荷进行分离
  • 2.将有效载荷交付给上层协议,所以协议中要有表明上层协议的字段

逻辑上,同层协议都可以认为自己在和对方直接通信

所有的主机协议在数据链路层可能不一致,但只要到了网络层以上,所有协议都是一样的,网络层屏蔽掉底层的差异,所以在互联网中只需要使用IP地址即可,所以互联网也叫做IP网

IP地址和MAC地址

我们所讲的IP,但凡没有说明,默认都是IPv4

  • IP地址在IP协议中,用来标示网络中不同主机的地址
  • 对于IPv4来说,IP地址是一个4字节的32位整数
  • 通常也使用点分十进制的字符串表示IP地址
    MAC地址用来识别数据链路层中相连的节点

长度为48位6个字节,一般用16进制数字加上冒号的形式来表示

MAC地址通常是唯一的,且MAC地址只在局域网中使用

相关推荐
hakesashou1 小时前
Python中常用的函数介绍
java·网络·python
C++忠实粉丝1 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
九州ip动态1 小时前
做网络推广及游戏注册为什么要换IP
网络·tcp/ip·游戏
Estar.Lee1 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
蝶开三月1 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
G丶AEOM1 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
儒道易行1 小时前
【DVWA】RCE远程命令执行实战
网络·安全·网络安全
Koi慢热2 小时前
路由基础(全)
linux·网络·网络协议·安全
hzyyyyyyyu4 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全