网络解决的问题,是牵扯到数据双方的。数据的发送方,数据的接收方。网络解决的就是不同机器之间不同进程的进程间通信问题
  网络协议:
  网络协议解决的就是网络双方,发送的网络数据格式问题
  网络协议本质上对发送和接收的数据的格式做出约定
 

1.1协议分层

    OSI七层模型
物理层 数据链路层 网络层 传输层 会话层 表示 层 应用层
 
 
TCP/IP五层/四层模型 (tcp/ip五层也称之为网络协议栈)
 
应用层:程序员写的代码就是应用层代码
典型协议:HTTP协议 DNS协议
传输层:负责端(端口或端点)与端之间的传输 (相当于通过ip协议交给哪一个进程)
典型协议:UDP协议,TCP协议
网络层:负责地址管理和路由选择
地址管理:管理ip地址
路由选择:当前数据到底要去往哪一个机器、具体怎么去(数据链路层负责)
 
典型协议:IP协议 典型设备:路由器
数据链路层:负责的是相邻设备之间的传输
典型协议:以太网协议 典型的设备:交换机
物理层:负责将数据转化成为光电信号
将光电信号转化成为二进制数据
典型协议:以太网协议 典型的设备:集线器
集线器:作用:放大信号的
 

1.2网络传输流程

 
网络基础知识点_网络基础
 
 

1.3 ip地址和MAC地址

ip地址
作用:在网络当中标识主机
本质: uint32_t的整数
表现形式:点分十进制
 
MAC地址
作用:数据链路层相连的设备进行互相识别
本质:长度为48位,也就是说6个字节
表现形式:
16进制数字加上冒号的形式来表示;
 

1.4端口

作用:在一台机器上,一个端口可以唯一标识一台进程。所以,当网络数据到达网络协议栈之后,可以通过端口信息确认该条消息是发送给哪一个进程
本质:uint16_t的整数(0~65535)
知名端口:
0~1023 :这个范围内的端口已经被一些知名的协议或者程序使用了
http : 80
https : 443
SSH(远程登陆):22
1521 : oracle数据库侦听的端口
3306 : mysql的侦听端口