网络编程

子网掩码:四点分十进制组成:

  C类:255.255.255.0

  B类:255.255.0.0

  A类:255.0.0.0

子网掩码与ip地址可以确定网关的地址

网关地址,网段,局域网:

路由器:

  家用路由器

  企业级路由器

  内网:路由就管理内网

    DHCP协议:自动分配IP地址

DNS服务器:

   有一个字典:

访问京东的具体流程:

1在浏览器输入www.JD.com 访问DNS浏览器,获取其IP地址,192.168.3.0

2,本机的操作系统:判断你访问的IP地址和你的IP地址是否在同一网段

分支1:如果在同一网段:

  以单薄的形式将请求,发送给交换机,然后交换机在以广播的形式发送给其他的交换机,所有的计算机以广播的形式发送给其他计算机

分支2:不在同一网段:

你的请求 原mac地址,目标mac地址,数据类型 | 192.167.12.13 | 8001| {'content':'向京东发送访问请求'} 会以单播的形式发送给交换机A --> 你的路由器A

3你的路由器A:做以下事情:

利用NAT计数:将你的计算机的IP置换成路由器A网段的IP 192.168.1.0

静态路由:将数据从路由A传给路由D

路由协议:利用算法计算出你到达目标路由的最短路径

4数据发送到路由器D,通过端口映射技术将数据发送至京东服务器的对应软件的端口上

tcp三次握手,tcp协议与udp协议

传输层:tcp协议,udp协议,端口协议

tcp协议:可靠地,面向链接的协议,流式协议,安全效率低,转账,文件传输

udp协议:效率高,快速,不可靠,微信,qq,聊天软件

tcp协议建立链接需要三次握手,断开链接需要四次挥手

三次握手:

  建立两个通道

  syn洪水攻击:

  一个服务端接收的客户端的请求非常多

  tcp协议又称好人协议,有一些黑客,造一些大量的假Ip,发送请求

  首先真的IP进不去,然后处理大量的假IP,服务端会定发送请求

断开链接的四次挥手:

套接字socket

  python中socket是 一个模块,与网络通信有关

  利用python写一个程序,写一个客户端,写一个服务端,让其实现数据传输

  写这样的程序就需要socket模块

import socket
phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买电话
#socket.AF_INET网络 socket.SOCK_STREAM:基于TCP协议的socket
phone.bind(('192.168.16.104',8848))#绑定IP地址和端口,绑定电话卡
#192.168.16.104 本地回环地址 端口号:1~1024系统专用,1024~8000,8000~65535
phone.listen(5) #监听
#服务端可以接受N个链接,但是只能同一时刻回应五个请求
conn,addr=phone.accept()#等待电话 阻塞等待
print(conn) #管道
print(addr) #客户端的IP端口
from_client_date=conn.recv(1024)#每次最多接受1024个字节
print(from_client_date.decode('utf-8'))
conn.send(from_client_date.upper())
conn.close()
phone.close()




import socket
phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.connect(('192.168.16.197',8848))
content=input('>>>>')
phone.send(content.encode('utf-8'))
from_server_date=phone.recv(1024)
print(from_server_date.decode('utf-8'))
phone.close()

    

原文地址:https://www.cnblogs.com/weize111/p/10401348.html