一.网络协议:
"""
一.数据链路层:定义了电信号的分组 ethernet 协议
1.以太网协议:
一组电信号构成了一个数据包
帧:报头 head + 数据 data
head :18 个字节 >>源地址 + 目标地址 + 数据类型 >>> 各6个字节
data: 46 - 1500 字节
2. mac 地址:每块网卡出厂时都会被烧制是独一无二的Mac地址(前六位是厂商的编号,后六位是流水线号)
3. 广播:同一个局域网的传播方式是哟广播的形式输传输数据的
Mac : 可以定位到世界上独一无二的局域网
其实有了Mac地址 和以太网协议 世界上的任何计算机都可以互相通信了>>>但是????>>>>>网络层
二.网络层 IP协议 :
IP 协议 >> IP地址 >>> iPV4 / IPV6
1. IP地址:是由32位二进制表示的
范围:0.0.0.0---255.255.255.0
2.子网掩码:32位3进制表示 分为两个部分(网络部分,主机部分)网络部全为1, 主机部分全为0
例如:子网掩码:11111111.11111111.11111111.00000000 >>>>>>255.255.255.0
3.子网地址:是由IP地址和子网掩码(换算为二进制的形式)按照AND运算(两个数都为1 时得1 ,其余的都是0 )
如果两个子网地址相等的话可以确定这两台主机处在同一个局域网中
4,.ARP协议:通过对方的IP地址,得到其主机的Mac地址

3. 传输层:tcp/udp协议 >>>>>> 3次握手,4次挥手

4. 应用层:Email, http , www , https .......
"""
二:socket:套接字
服务端: from socket import socket,SOCK_STREAM,AF_INET #1.创建服务器socket 对象 SerScoket=socket(AF_INET,SOCK_STREAM) #2.设置服务器地址 SerScoket.bind(("192.168.13.109",80)) #3.设置连接管理队列 SerScoket.listen(5) #4.建立客户端连接 CliScoket,addr=SerScoket.accept() #>>> cliSocket 为一个传输数据的套接字, addre为客户端的IP地址和端口 #5.收发数据 data= CliScoket.recv(1024) #>>>收数据 print(data.decode("utf-8")) CliScoket.send("哈哈哈".encode("utf-8")) #>>发送数据 CliScoket.close() SerScoket.close()
客户端 from socket import socket ,AF_INET,SOCK_STREAM #1.创建一个客户端的是socket的对象 CliSocket=socket(AF_INET,SOCK_STREAM) #2.连接服务端 while True: CliSocket.connect(("192.168.13.119",8080)) CliSocket.send("傻儿子".encode("utf-8")) #收发数据 data= CliSocket.recv(1024) print(data.decode("utf-8")) #关闭客户端