网络编程

 

1.两种构架:(1)C/S构架:client, server

       (2) B/S构架:browser,server

 

2.地址相关:(1)MAC地址,物理地址,唯一,但可以更改

      (2)ip地址,网络地址,网络位置,可更改。

3.相关设备知识:(1)交换机:局域网内用来连接各电脑,实现局域网内通信;

            无法直接识别IP地址;可识别MAC地址

            先广播,在通过返回信息中的MAC地址实现一对一通信;

         即通过一台机器的IP地址找到其MAC地址:arp协议,地址解析协议

           (2)路由器:实现不同局域网之间的通信;

           (3)网关ip:一台机器对局域网外地址进行通信、访问时,使用的出口ip

4.端口:端口对应机器上具体应用对应的服务  0~65535;9000之后一般随便用,之前的端口有惯用端口,可能被占用

    格式   IP地址 : 端口号   例:192.168.0.1:8080

5.子网掩码:和IP地址与运算,用来界定不同地址是否是同一网段  例:255.255.255.0

6.常用的网段划分:全网段 0.0.0.0~255.255.255.255

         局域网三种:10.0.0.0~10.255.255.255

         (保留字段)172.16.0.0~172.16.255.255

               192.168.0.0~192.168.255.255  65535个地址

         本地回环地址 127.0.0.1

         全网段地址     0.0.0.0

 

7.socket

 1 # 服务端举例
 2 
 3 import socket
 4 
 5 sk = socket.socket()
 6 sk.bind((''127.0.0.1,9008))
 7 sk.listen()
 8 
 9 conn,addr = sk.accept()
10 conn.send('server_test')
11 msg = conn.recv(1024)
12 print(msg,addr)
13 
14 conn.close()
15 sk.close()
 1 # 客户端举例
 2 
 3 import socket
 4 
 5 sk = socket.socket()
 6 sk.connect(('127.0.0.1',9008))
 7 
 8 msg = sk.recv(1024)
 9 print(msg)
10 sk.send('client_test')
11 
12 sk.close()

基于TCP

 ***********************************************************************************************************************************************

 1 # server端举例
 2 
 3 import socket
 4 
 5 sk = socket.socket(type = socket.SOCK_DGRAM)
 6 sk.bind(('127.0.0.1',9002))
 7 
 8 msg,client_addr = sk.recv(1024)
 9 print(msg,client_addr)
10 
11 sk.sendto('你好,已收到'.encode('utf-8'),client_addr)
12 
13 sk.close()
 1 # 客户端举例
 2 
 3 import socket
 4 
 5 sk = socket.socket(type=socket.SOCK_DGRAM)
 6 
 7 sk.sendto(b'halo,who?where?what?',('127.0.0.1',9002))
 8 msg,server_addr = sk.recvfrom(1024)
 9 print(msg.decode('utf-8'),server_addr)
10 
11 sk.close()

基于UDP

 

8.网络传输协议 TCP / UDP 特点区别

(1)TCP协议:传递信息前必须先建立连接,在连接的基础上进行信息传递。

    a.面向连接

    b.可靠:数据完整,不会丢失或重复

    c.数据传递长短无限制

    d.但是速度慢

 

(2)UDP协议:不需要建立连接,直接发送和接收。

    a.无连接

    b.相对不可靠,可能丢失信息

    c.数据长短有限制

    d.速度快

 

 PS:建立连接:三次握手(第一次A向B发送建立连接请求,第二次B向A发送建立连接回复+建立连接请求,第三次A发送建立连接回复+数据)

    断开连接:四次挥手(第一次A向发送断开,第二次B回复A的断开,第三次B向A发送断开,第四次A向B回复断开;中间第二次第三次不可合并,中间可能还存在传输的数据)

   过程中的名词缩写:SYN;ACK;FIN

 

9.OSI七层协议(OSI五层协议)

           (1)物理层:                                   网线等

           (2)数据链路层:MAC地址相关    arp协议,二层交换机,网卡

           (3)网络层:       IP地址相关         ip协议,路由器,三层交换机

           (4)传输层:       端口              TCP/UDP传输协议,四层交换机,四层路由器

 

*************************

           (5)会话层

   5层--(6)表示层          应用层:    python 

           (7)应用层

************************

posted on 2019-04-08 18:00  Picxy  阅读(124)  评论(0)    收藏  举报