1、传输模型
注意:TCP/IP协议不是TCP和IP两个协议的合称,而是指整个因特网中的TCP/IP协议的合称。
2、TCP协议
(1)TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。
(2)建立连接模式(三次握手)
(3)断开连接模式(四次挥手)
3、UDP协议
(1)UDP协议是无连接的、不可靠的协议。它只管发数据,不管收不收的到数据。
(2)UDP协议和TCP协议的比较:
a、UDP协议是不安全的,但是效率高。(不保证数据的完整性)
b、TCP协议是安全的,但效率不高。(保证数据的完整性)
(3)TCP协议中如果数据丢失会进行重发,并且打包数据进行传输数据,但是UDP协议不会这样进行。
注意:互联网中主要传输的两个协议是UDP协议和TCP协议。
4、IP地址和端口
(1)IP地址
a、概念
IP地址是互联网协议地址,IP地址是是用来给Internet的电脑编号。
b、IP地址格式
IP地址是一个32位的二进制数,通常用点分十进制来表示。IP地址由网络地址和主机地址组成。
c、按网络规模分类
A类地址(大型网络)、B类地址(中型网络)、C类地址(小型网络)
d、按照用途分类
公有地址和私有地址。公有地址是直接在互联网上使用的IP地址;私有地址是局域网中使用的地址。(A类私有地址的范围是10.0.0.1~10.0.0.254,B类私有地址的范围是172.16.0.1~172.31.255.254,C类私有地址的范围是192.168.0.1~192.168.255.254)
(2)端口
a、分类可以分为虚拟端口和物理端口
虚拟端口指计算机内部或交换机内部的端口、不可见的。(比如计算机中的80端口、21端口、23端口)
物理端口又被称为接口,是可见端口。(比如RJ45网口)
注意:计算机用整数表示端口;一台电脑有65536个端口,范围是0~65535.
5、套接字
(1)定义
a、套接字是基于TCP、UDP协议的一个接口(接口中封装实现相应的的功能)。
b、实现程序在网络中的通信。Socket是实现网络通信的基本技术之一。
c、大多数网络软件是基于Socket来进行实现的。
d、在进行通信之前,必须先要创建套接字对象。
(2)python中使用套接字
代码实例(创建一个简单的同步阻塞并发服务器):
客户端代码:
import Socket
client=Socket.socket()
client.connect(('填写服务器的地址',服务器的端口号))
while True:
data=input(">>>>>")
if data=='q':
exit()
else:
client.send(data.encode("utf-8"))
res=client.recv(1024)
print(res.decode("utf-8"))
client.close()
服务端代码:
import Socket
tcp_server=Socket.socket()
tcp_server.bind((' ',用一个端口号来指定服务器))
tcp_server.listen(5)
while True:
conn,adrr=tcp_server.accept()
while True:
res=conn.recv(1024)
if res:
print(res)
conn.sebd(res)
else:
conn.close()
break
网友评论