首页 > 代码库 > TCP原理

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 ‘‘‘

 

TCP原理