TCP/IP族 是一个协议族 不是两个协议
链路层 网络层 传输层 应用层
物理层 数据链路层 网络层 传输层 会话层表示层 应用层
端口
80端口分配给HTTP服务
21端口分配给FTP服务
知名端口 0-1023
动态端口 1024-65535
查看当前端口 # netstat -an
IP地址
ABC类地址 0 10 110 32位
D类地址用于多点广播 用于一次寻址一组计算机
私有IP
10.0.0.0 10.255.255.255
172.16.0.0 172.31.255.255
192.168.0.0 -192.168.255.255
127.0.0.01-127.255.255.255 用于回路测试
套接字
函数 socket.socket 创建⼀个 socket,返回该 socket 的描述符,该函数带有两个参数:
Address Family:可以选择 AF_INET(⽤于 Internet 进程间通信) 或者AF_UNIX(⽤于同⼀台机器进程间通信),实际⼯作中常⽤AF_INET
Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要⽤于TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要⽤于 UDP 协议)
Python3中 sendto()中 内容前面要加b 例如 sentto (b"haha",sendAddr)也就是 .encode("utf-8") 解码用 .encode("gb2312")
TFTP
cmd_buf = struct.pack("!H8sb5sb",1,"test.jpg",0,"octet",0)
网络协议部分
icmp ping命令时使用
arp 根据ip找mac
rarp 根据mac找ip
tcp三次握手 必考
四次回首 先 C 后 S S C接到最后一个S 发送确认 总共四次
DNS服务的底层为UDP
DHCP 自动分配IP
TTL 路由器剩余转发次数
MSL 最长存活时间
计算密集型用多进程
io密集型用多线程或者协程
greenlet = yield 类似c中的goto 假装出两条线程
greenlet升级版: gevent 遇到耗时操作 自动切换 money.patch_all()写在最前面