网络发展
独立模式:计算机之间相互独立;
网络互联:多台计算机连接在一起,完成数据共享;
局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起;
广域网WAN:将远隔千里的计算机都连在一起;
所谓"局域网"和"广域网"只是一个相对的概念,比如,我们有"天朝特色"的广域网,也可以看做一个比较大的局域网。
认识“协议”
“协议”是一种约定
计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。
分层的最大好处在于“封装”。面向对象例子。
OSI七层模型:
7.应用层:针对特定应用的协议
6.表示层:设备固有数据格式和网络标准数据格式的转换。接受不同表现形式的信息,如文字,图像,声音等
5.会话层:通信管理。负责建立和断开通信连接。
4.传输层:管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠地传输到目标地址)
3.网络层:地址管理和路由选择。经过哪个路由传递到目标地址?
2.数据链路层:互连设备之间传送和识别数据帧。数据帧与比特流之间的转换
1.物理层:以“0”,“1”代表电压的高低,灯光的闪灭。界定连接器和网线的规格。比特流与电子信号之间切换。
OSI(Open System Interconnection,开放系统互连) 七层网络模型称为开放式系统互连参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层,每一层都有相关,相对应的物理设备,比如路由器,交换机;
OSI七层模型是一种框架性设计方法,其最重要的功能就是帮助不同类型的主机实现数据传输。
它的最大优点是将服务,接口和协议这三个概念明确区分开来,概念清除,理论也比较完整,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
1.以太网协议:规定电信号分组方式。(链接层)
2.MAC地址:数据包必须是从一个网卡传送到另一个网卡,网卡的地址,就叫做MAC地址。(链接层)
3.数据包:一组电信号构成一个数据包,叫做帧,表头和数据(链接层)
4.ARP协议:一块网卡怎么会知道另一块网卡的MAC地址。(链路层)
5.路由:指如何向不同的网络分发数据包。(网络层)
6.网络地址(网址):网络层的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络,这套地址就叫做“网址”。(网络层)
说明:MAC地址是绑定在网卡上的,网络地址则是管理员分配的,先处理网络地址,再处理MAC地址。
7.IP协议:规定网络地址的协议,叫做IP协议,它定义的地址叫IP地址。(网络层)
8.子网掩码:子网络特征的一个参数,它的网络部分全部为1,主机部分全部为0.(网络层)
IP协议的作用:1.为每一台计算机分配IP地址。2.确定哪些地址在同一个子网络。
9.端口(port):每一个使用网卡的程序的编号,不同的程序有不同的端口号。(传输层)
传输层的功能:建立在“端口到端口”的通信。
“网络层”:建立在主机到主机的通信。
10.套接字:Unix系统把主机+端口叫做socket,IP地址+端口号就可以标识互联网上的一个进程。IP地址+端口号叫socket 套接字。(传输层)
11.UDP协议:在数据包中加入端口信息,这就需要新的协议。(传输层)
IP地址
版本:IPv4和IPv6。默认都是指IPv4
IP地址是在IP协议中,用来标识网络中不同主机的地址。
对于IPv4来说 4个字节 32位的整数
我们通常也使用“点分十进制”字符串表示IP地址,例如192.168.0.1;用点分割的每一个数字表示一个字节,范围是0-255;
在IP数据包头部中,有两个IP地址,分别叫做源IP地址和目的IP地址
端口号(传输层)
- 2字节16位整数;
- 用来标识一个进程。
- IP地址+端口号能够标识网络上某一台主机的某一个进程;
- 一个端口号只能被一个进程占用。
一个进程可以绑定多个端口号;但是一个端口号不能被多个进程绑定;
TCP协议
UDP协议
网络字节序:默认是大端。
sockaddr:通用的数据结构。相当于void *