1.概念
1.协议:通信双方约定的一套通信标准
2.网络通用协议模型
1.OSI模型:理想模型
- 应用层:要传递的数据和信息
- 表示层:是否对数据加密
- 会话层:是否需要建立会话链接
- 传输层:传递数据的方式
- 网络层:数据的路由(跨局域网的通信)
- 数据链路层:局域网内部的通信
- 物理层:物理介质的连接
2.TCP/IP模型
- 应用层
- 传输层
- 网络层
- 网络接口层:融合了数据链路层和物理层

3.TCP/IP网络模型中的协议:
1.应用层:
HTTP协议:超文本传输协议
HTTPS协议:加密的HTTP协议
DNS协议:域名解析协议,将域名转换成IP地址
TELNET协议:远程登录协议
SMTP协议:邮件传输协议
MQTT协议:物联网传输协议
RTSP协议:流媒体协议
2.传输层:
UDP协议:用户数据报协议
TCP协议:传输数据协议
机制:通信之前:三次握手建立连接

通信之后:四次回收结束链接

通信过程中:确认机制
流量控制,拥塞控制
协议对比:
UDP资源开销比较小,TCP资源开销大
UDP传输机制简单,TCP传输机制复杂
UDP传输不安全,不可靠,TCP传输安全可靠
3.网络层
1. IPV4协议
1. 192.168.0.107
IP地址==网络位+主机位
2.网段号:网络位不变,主机位全为0
3.子网掩码:用来区分IP地址的网络位和主机位,子网掩码是1的部分,表示网 络位,是0的部分表示主机位。
IP地址:192.168.0.107
子网掩码:255.255.255.0
192.168.0.107:
11000000.10101000.00000000.01101011
255.255.255.0
11111111.11111111.11111111.00000000
注意:在同一个网段内的IP地址能够直接通信
4. 一个局域网内能容纳主机的个数:2^主机位 – 2
网段号(网络位不变,主机位全为0)不能使用
广播地址(网络位不变,主机位全为1)不能使用
| 网络类别 | 最大可指派的网络数 | 第一个可指派的网络号 | 最后一个可指派的网络号 | 每个网络中最大主机数 |
| A | 126 | 1 | 126 | 16777214 |
| B | 16383 | 128.1 | 191.255 | 65534 |
| C | 2097151 | 192.0.1 | 223.255.255 | 254 |
5.IP地址的分类:
A类:1.0.0.0 – 126.255.255.255
子网掩码:255.0.0.0
管理超大规模型网络
B类:128.0.0.0 – 191.255.255.255
子网掩码:255.255.0.0
管理大中规模型网络
C类:192.0.0.0 – 223.255.255.255
子网掩码:255.255.255.0
管理中小规模型网络
D类:224.0.0.0 – 239.255.255.255
子网掩码:255.255.255.0
用于组播通信
E类:240.0.0.0 – 255.255.255.255
子网掩码:255.255.255.0
用于实验
6.公有地址和私有地址
1.公有地址:能够直接上互联网的地址
2.私有地址:不能直接上互联网的地址
A类私有IP地址:10.0.0.0 – 10.255.255.255
B类私有IP地址:172.16.0.0 – 172.31.255.255
C类私有IP地址:192.168.0.0 – 192.168.255.255
2.IPV6协议
3. ARP协议:根据IP地址获取MAC地址
4.RARP协议:根据MAC地址获取IP地址
5.跨局域网通信使用IP地址,局域网内部通信使用MAC地址。
2.网络的配置及命令
1.虚拟机网络的2种工作模式
1.桥接模式
1.Ubuntu与Windows网络相互独立,每个系统会单独分配一个IP地址
2.可以作为局域网的服务器
3.作为服务器端必须使用桥接模式,
2.NAT模式
1. Ubuntu与Windows网络关联,Ubuntu相当于Windows一个软件,UbuntuIP地址是虚 拟出来的,无法作为服务器
2. 无法作为局域网服务器
3. 作为客户端所用优先选择NAT模式,因为Windows有网,Ubuntu就有网
2.ifconfig命令
查看网卡IP地址
ifconfig
ifconfig 网卡名 IP地址/24 up
#将ens33网卡设置为192.168.0.108,子网掩码设置为255.255.255.0启动网卡
ifconfig ens33 192.168.0.108/24 up
#关闭/开启网卡
ifconfig 网卡名 down/up
3.ping命令
测试与某个IP地址是否能够连通
ping www.baidu.com
4.网络配置方法:
1. 将虚拟机网卡设置为桥接模式


2.将桥接网卡设置成无线网卡



3.将网卡配置文件修改为自动获取IP地址
1.打开配置文件
sudo vim /etc/network/interfaces
2.修改配置文件内容为:
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet dhcp
3.重启虚拟机
sudo shutdown -r now
4.测试与百度是否ping通
ping www.baidu.com
3.UDP通信
1.套接字
2.函数接口:
1.socket
1 int socket(int domain, int type, int protocol);
2 功能:
3 创建一个用来进行套接字通信的终端节点
4 参数:
5 domain:AF_INET IPv4协议族
6 type:SOCK_DGRAM 数据报套接字
7 protocol: 0 UDP通信
8 返回值:
9 成功返回新的文件描述符
10 失败返回-1
2.sendto
1 ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
2 const struct sockaddr *dest_addr, socklen_t addrlen);
3 功能:
4 向另一个套接字发送信息
5 参数:
6 sockfd:使用socket创建获得套接字
7 buf:发送内容的空间的首地址
8 len:发送数据的长度
9 flags:发送的属性,默认为0
10 dest_addr:目的IP的空间的首地址
11 addrlen:目的IP的大小
12 返回值:
13 成功返回发送的字节数
14 失败返回-1
3.htons
1 uint32_t htonl(uint32_t hostlong);
2 uint16_t htons(uint16_t hostshort);
3 uint32_t ntohl(uint32_t netlong);
4 uint16_t ntohs(uint16_t netshort);
5 功能:
6 本地字节序与网络字节序的转换
7 h:host 本地
8 n:net 网络
9 l:long 长整型 IPv4
10 s:short 短整型 IPv4
11 htons:将本地字节序转换为网络字节序
4.inet_addr
1 in_addr_t inet_addr(const char *cp);
2 功能:
3 将字符串IP地址转换为32位的IP地址
4 参数:
5 cp:字符串IP地址
6 返回值:
7 32位结构体IP地址
网硕互联帮助中心



评论前必须登录!
注册