网络编程 TCP协议

1.理论知识

2.通信 -- 程序编码


架构 -- 程序员开发的一种模式
C/S架构 客户端/服务器模式

B/S架构 Browser浏览器 / 服务器模式
B/S架构的优势: 统一了应用的接口

网络通信编程:
同一台电脑上两个py文件通信 --- 文件

两台电脑 如何通信? --- 一根网线

多台电脑(在同一个局域网)  如何通信? --- 交换机

更多台电脑(不在同一个局域网)   如何通信? --- 交换机+路由器

网卡:mac地址(物理地址),一般是由网卡生产厂商给的,不能随便给,要遵循一定的规则,因为mac地址要求全球唯一.

mac地址(物理地址)  : 在cmd 查看命令 ipconfig /all  mac地址是12位十六进制组成

ip地址: 是一个四位点分十进制组成(ipv4)
端口: 操作系统为每一个应用程序分配一个端口号
ip + 端口号 唯一确定某一个电脑上的某一个程序

arp协议: 通过目标ip地址,获取目标mac地址

给你一个ip地址,如何确定它是不是在你当前局域网内?
ip地址 & 子网掩码
ex:
ip地址 192.168.1.12
1100 0000 . 1010 1000 . 0000 0001 . 0000 1100

1111 1111 . 1111 1111 . 1111 1111 . 0000 0000

结果 1100 0000 . 1010 1000 . 0000 0001 . 0000 0000

结果  ------->  192.168.1.0   网段

网段是由IP地址的前三位决定的.例:(192.168.1)这就是一个网段,第四位数大于等于 0 小于 256 ,他们都是一个网段的.

用网段来确定一个IP地址是否和自己在一个局域网内.

网段 = IP地址    &     子网掩码

 

路由器 : 有一个路由表,记录了归他管理的所有的网段.

协议 : 由多人制定的一种规则.

通过socket模块去操作tcp和udp协议

TCP协议:   通信方式 : 安全可靠,是面向连接

UDP协议:  通信方式  : 不安全,不可靠,但是快,不是面向连接.

IP地址: 127.0.0.1  : 回环地址:无论什么时候都可以代表本机的IP地址(只限在本机使用)

TCP协议:

三次握手 : 注意必须是client(客户端)先发起请求

1.client发送给server 我想连接你,可以吗?

2.server回复client,可以,我也想连接你,可以吗?

3.client回复server,可以

四次挥手 : 谁先发起请求都可以

1.client发送请求:我准备断开连接了,我没有数据需要发送了;如果你有数据可以继续发给我.

2.server回复:确认收到你的请求,我开始着手准备断开事宜.

3.server回复:我准备好了,可以随时断开连接.

4.client回复:断开连接吧.

 

 

 

OSI五层模型:

应用层  py文件

传输层  TCP/UDP协议

网络层  IP协议

数据链路层 arp协议,网卡

物理层  网线,集线器,光纤

 

 

TCP协议编码:  服务器  和  客户端

服务器:

import  socket

sk = socket.socket()      #里面什么参数都不写,默认是TCP协议

sk.bind(("ip地址",端口号))   # 端口号:0-65535     0 - 1023(不能用)  8000 - 10000

sk.listen()           #监听            (建议用的端口号)

conn,addr = sk.accept()      #接通

ret = conn.recv(1024)      #接收

print(ret)      #接收的是bytes类型.

conn.close()

sk.close()

 

客户端:

import  socket

sk = socket.socket()

sk.connect(("服务器的IP地址",服务器的端口号))  #与服务器建立联系

sk.send(bytes类型)    #给服务器发送内容,内容必须是bytes类型

sk.close()

 

 

=================================================================

必须背过的东西,面试题

1.arp协议

2.tcp和udp的区别

3.tcp三次握手和四次挥手

4.什么是协议

5.tcp协议编码流程

 

posted @ 2018-07-18 17:56  冯坤大神  阅读(196)  评论(1编辑  收藏  举报