网络编程

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

 # 服务端举例

 import socket

 sk = socket.socket()
sk.bind((''127.0.0.1,9008))
sk.listen() conn,addr = sk.accept()
conn.send('server_test')
msg = conn.recv(1024)
print(msg,addr) conn.close()
sk.close()
 # 客户端举例

 import socket

 sk = socket.socket()
sk.connect(('127.0.0.1',9008)) msg = sk.recv(1024)
print(msg)
sk.send('client_test') sk.close() 基于TCP

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

 # server端举例

 import socket

 sk = socket.socket(type = socket.SOCK_DGRAM)
sk.bind(('127.0.0.1',9002)) msg,client_addr = sk.recv(1024)
print(msg,client_addr) sk.sendto('你好,已收到'.encode('utf-8'),client_addr) sk.close()
 # 客户端举例

 import socket

 sk = socket.socket(type=socket.SOCK_DGRAM)

 sk.sendto(b'halo,who?where?what?',('127.0.0.1',9002))
msg,server_addr = sk.recvfrom(1024)
print(msg.decode('utf-8'),server_addr) 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)应用层

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

python可能会用到的网络基础的更多相关文章

  1. Python进程间通信和网络基础

    Python进程间通信和网络基础 Python支持多种进程间通讯的方式, 有单机通信的signal和mmap等, 也有可以通过网络的socket方式, 这里先介绍select等的有关知识, socke ...

  2. python基础(29):网络编程(软件开发架构、网络基础、套接字初使用)

    1. 软件开发架构 我们了解的程序之间通讯的应用可分为两种: 第一种是应用类:qq.微信.百度网盘.腾讯视频这一类是属于需要安装的桌面应用. 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就 ...

  3. Python服务器开发 -- 网络基础

    Python服务器开发 -- 网络基础   网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.... 网络由下 ...

  4. Python服务器开发二:Python网络基础

    Python服务器开发二:Python网络基础   网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.包括: ...

  5. Python网络编程之网络基础

    Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...

  6. 2.Python爬虫入门二之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  7. Python爬虫入门二之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  8. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  9. 网络基础四 DNS DHCP 路由 FTP

    第1章 网络基础 1.1 IP地址分类 IP地址的类别-按IP地址数值范围划分 IP地址的类别-按IP地址用途分类 IP地址的类别-按网络通信方式划分 1.2 局域网上网原理过程 DHCP原理过程详情 ...

随机推荐

  1. Delphi中Chrome Chromium、Cef3学习笔记(五)

    原文   http://blog.csdn.net/xtfnpgy/article/details/48489489   一.模拟移动鼠标 //  SetCursorPos(StrToInt(Edit ...

  2. 阿里云消息队列的C#使用http接口发送消息实例

    app.config <appSettings> <clear/> <add key="Ons_Topic" value="XXX_Fini ...

  3. 如何激活已经运行过的Activity, 而不是重新启动新的Activity

    Intent i=new Intent(this,Activity1.class);   i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);   st ...

  4. EF 数据迁移 常见错误

    1.错误 “LC.exe”已退出,代码为 -1 原因:解决方案出错,而非迁移的项目

  5. docker原理(转)

    可能是把Docker的概念讲的最清楚的一篇文章 [编者的话]本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令. Docker是世 ...

  6. python day06笔记总结

    2019.4.3 S21 day06笔记总结 一.昨日内容补充 1.列表独有功能: 1.revers 反转 例:v1 = [1,2,4,88,2] v1.revers() print(v1) 2.so ...

  7. js解决下拉列表框互斥选项的问题

    如图不区分选项与其他选项是互斥的关系,当选择了不区分时,其他选项就要去除,当有其他选项存在时,就不能有不区分 解决办法:定义change事件,若列表发生改变,首先判断点击的是否是不区分,若是,则将其他 ...

  8. base64位代码转图片文件并保存到文件夹的解决方案

    #region Base64 转图片方法 protected string Base64StringToImage(string strbase64) { try { string imgurl = ...

  9. 《Http权威指南》读书笔记

    第7章 Http缓存 1.什么是Http缓存? http缓存指的是: 当客户端向服务器请求资源时,会先抵达浏览器缓存,如果浏览器有"要请求资源"的副本,就可以直接从浏览器缓存中提取 ...

  10. sublime安装PackageControl提示失败(被墙了)

    An error occurred installing Package Control 然后下面又说visit....某网址 如果弹出这个错误的话,就是被墙了.翻个墙或者改hosts就行了 如果是改 ...