TCP原理
1 # http 2 # smtp 3 # dns 4 # ftp:下载上传文件 5 # ssh 6 # snmp 7 # dhcp 8 # icmp ping :网络层 (其他都是在传输层之上 都是应用层 ) 9 10 # 数据的交换: 收/发两个步骤 11 # OSI七层模型: 12 # 物理层 13 # 数据链路 mac(十六进制) 计算机只认识mac地址 14 # 网络 IP 双方互相识别 15 # TCP/IP:三次握手四次断开 16 # A-> syn ->B 发起建立连接的请求 确保B存在 17 # A<- syn+ack <-B syn响应+ack应答 18 # A-> ack ->B ack应答 确保A存在 19 # UDP 流媒体 20 # 地址簇 socket.AF_UNIX socket.AF_INET:ipv4 socket.AF_INET6:ipv6 21 # 传输 各种协议->协议的收发进行封装->socket socket types socket.SOCK_STREAM socket.SOCK_DGRAM socket.SOCK_RAW:可以伪造IP,洪水攻击 socket.SOCK_RDM:udp 22 # 会话 23 # 表示 24 # 应用 25 26 ''' 27 # socket中做什么?发数据 收数据 28 发数据 29 IP地址:连接请求的机器 30 访问程序(port):端口 一个机器上最多能开放的端口是65535(port) nginx:80 mysql:3306 31 收数据 32 连接机器的IP和端口:(数据的返回目标) 33 ##发送端## 34 import socket 35 # 选择协议 36 socket.TCP/IP 37 # 链接对方 38 connect (a.ip,a.port) 39 # 发送数据 40 socket.send("hello") 41 socket.recv() 42 socket.close() 43 44 ##接收端## 45 # 要先有服务端 46 import socket 47 # 选择协议 48 socket.TCP/IP 49 # 监听端口 50 listen(0.0.0.0,6969) 51 # 接收数据 52 waiting() 53 recv() 54 # 发送数据 55 send() 56 '''