Python socket网络编程(通信介绍)
| socket通信介绍 |


通信介绍(一)
1.所有网络协议的基础就是:socket
2.socket对TCP与UDP协议封装,让用户进行简单操作。
3.socket只做两件事:发 send,收 receive 。
其他概念
传输协议有 TCP与UDP
TCP/IP
三次握手
1.客户端 syn--> 服务端
2.客户端 <--syn+ack 服务端
3.客户端 ack--> 服务端
OSI七层
应用层 ..
表示层 ..
会话层 ..
传出层 协议
网络层 ip
数据链路层 mac
物理层 二进制 0 1
通信介绍(二)
1.每个机器上有65535个端口(port)
2.实现通信需要IP加端口。
1.socket
1.sockt支持TCP与UDP
伪代码发送端(客户端)
#1.添加模块
import socket
#2.定义操作类型
socket.TCP/IP
#3.链接对方,不需要三次握手
connect(a.ip,a.port)
#4.发送数据
socket.send(hello)
#5.收回数据
socket.recv()
#6.关闭链接
socket.close()
伪代码接收端(服务端)
#1.添加模块
import socket
#2.定义操作类型
socket.TCP/IP
#3.监听端口
listen(0.0.0.0,6969)
#4.等待数据来
waiting()
#5.收数据
recv()
#6.发回数据
send

2.socket
(1)socket Families(地址簇)
#网络层
socket.AF_UNIX unix本机进程间通信,协议类型就是地址簇
①进程与进程之间是无法通信的
注:两个进程想通信,可以通过序列化pickle实现。
注:同过Pickle把A进程里面的内存对象存到硬盘上,
B进程在打开A进程的硬盘文件在load回来。(比较慢)
注:进程间可以访问就相当于QQ直接可以把word读出来
②如果想快速读数据可以通过AF_UNIX本机进程间通讯。
注:本机会有一个local.socket,转一次数据,完成进程间交互。
socket.AF_INET IPV4
①网络层相当于地址簇
socket.AF_INET6 IPV6
①网络层相当于地址簇
(2)socket Types
#传输层
socket.SOCK_STREAM #for tcp
socket.SOCK_DGRAM #for udp
socket.SOCK_RAW
①可以处理普通套接字处理不了的
注:原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,
而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文。
②可以伪造报IP头
注:利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。
③可以进行洪水攻击(Dos攻击)
注:通过发送大量的请求服务并发给服务,达到服务瓶颈,
导致服务无法承受负载压力。
Dos攻击:TCP三次握手,第二次握手,服务会进行syn_recve等待状态
两分钟(可修改),大量进行IP头修改可形成dos攻击。
socket.SOCK_RDM
①是一种可靠的UDP形式,即保证交付数据报但不保证顺序。
注:SOCK_RAM用来提供对原始协议的低级访问,
在需要执行某些特殊操作时使用,如发送ICMP报文。
SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。
socket.SOCK_SEQPACKET #废弃了
Python socket网络编程(通信介绍)的更多相关文章
- Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
- Socket网络编程基本介绍
一,socket的起源 socket一词的起源 在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的, 撰写者为Stephen Carr.Steve Crocker和Vi ...
- Python Socket 网络编程 (客户端的编程)
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
- python select网络编程详细介绍
刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...
- Python Socket网络编程详解
Socket 简介 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. s ...
- 25 python socket网络编程
一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...
- Python - Socket网络编程 - 第二十六天
网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高 ...
- python——socket网络编程
一.OSI七层模型
- python socket网络编程之粘包问题详解
一,粘包问题详情 1,只有TCP有粘包现象,UDP永远不会粘包 你的程序实际上无权直接操作网卡的,你操作网卡都是通过操作系统给用户程序暴露出来的接口,那每次你的程序要给远程发数据时,其实是先把数据从用 ...
随机推荐
- Qt编写自定义控件11-设备防区按钮控件
前言 在很多项目应用中,需要根据数据动态生成对象显示在地图上,比如地图标注,同时还需要可拖动对象到指定位置显示,能有多种状态指示,安防领域一般用来表示防区或者设备,可以直接显示防区号,有多种状态颜色指 ...
- SimpleDateFormat 出现错误 Call requires API level 24 (current min is 15)
这个故事是这样的 今天写打卡时间的时候需要获取一下当前时间,然后我就写了一个这个 SimpleDateFormat sDF = new SimpleDateFormat("yyyy-MM ...
- H5常用技巧
工作每天都是接触移动的,特将平时工作中常用的技巧整理总结. 一.@support断定浏览器支持情况定义不同样式 @1像素边框 @supports (-webkit-backdrop-filter:bl ...
- brew 源 & pip 源
brew源: https://www.zhihu.com/question/31360766 摘要 1. 替换formula 索引的镜像(即 brew update 时所更新内容) cd " ...
- C#串口小助手
做技术的通病,什么都想学,什么都想亲手做一遍.不然总感觉心里不踏实. 考研期间,利用晚上一点时间,照葫芦画瓢,练习使用c#快速开发一个简单的串口小助手. 这种前后端分离的设计方法,大大提高了开发速度, ...
- 更改ORACLE归档路径及归档模式
更改ORACLE归档路径及归档模式 在ORACLE10g和11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/flash_recovery_area).对于这个路径, ...
- 移动端click事件
var tap = "ontouchstart" in document.documentElement ? "touchend" : "click& ...
- vue前后分离---数据模拟
最近为在做CRM的前期工作,忙里偷闲写了个关于数据模拟方面的东西 主要是现在博客中满天都再说前后分离,但是还没有几个实际操作的---让许多新手{-_-} 方法一: 启动一个express静态服务器-- ...
- Android 函数
inflate: https://blog.csdn.net/u012702547/article/details/52628453 public View inflate(XmlPullParser ...
- Python学习之旅(三十三)
Python基础知识(32):网络编程(Ⅰ) 网络通信是两台计算机上的两个进程之间的通信,而网络编程就是如何在程序中实现两台计算机的通信 P协议负责把数据从一台计算机通过网络发送到另一台计算机 TCP ...