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网络编程(通信介绍)的更多相关文章

  1. Python Socket 网络编程

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

  2. Socket网络编程基本介绍

    一,socket的起源 socket一词的起源 在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的, 撰写者为Stephen Carr.Steve Crocker和Vi ...

  3. Python Socket 网络编程 (客户端的编程)

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

  4. python select网络编程详细介绍

    刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...

  5. Python Socket网络编程详解

    Socket 简介 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. s ...

  6. 25 python socket网络编程

    一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...

  7. Python - Socket网络编程 - 第二十六天

    网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高 ...

  8. python——socket网络编程

    一.OSI七层模型

  9. python socket网络编程之粘包问题详解

    一,粘包问题详情 1,只有TCP有粘包现象,UDP永远不会粘包 你的程序实际上无权直接操作网卡的,你操作网卡都是通过操作系统给用户程序暴露出来的接口,那每次你的程序要给远程发数据时,其实是先把数据从用 ...

随机推荐

  1. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  2. js - 伪数组转化为数组的几种方法整理(更新中...)

    伪数组:无法调用数组的方法,但是有length属性,又可以索引获取内部项的数据结构. 比如:arguments.getElementsByTagName等一系列dom获取的NodeList对象,他们 ...

  3. Elasticsearch学习之有用博客

    推荐阅读:1.阿里:https://elasticsearch.cn/article/61712.滴滴:http://t.cn/EUNLkNU3.腾讯:http://t.cn/E4y9ylL4.携程: ...

  4. 【CF613D】Kingdom and its Cities 虚树+树形DP

    [CF613D]Kingdom and its Cities 题意:给你一棵树,每次询问给出k个关键点,问做多干掉多少个非关键点才能使得所有关键点两两不连通. $n,\sum k\le 10^5$ 题 ...

  5. 删除或修改本地Git保存的账号密码

    win10 系统下进入 控制面板 > 用户帐户 > 管理你的凭据 选择 [Windows 凭据] git 保存的用户信息在普通凭据列表里 >>编辑>>>完成

  6. 查询数据库中含clob,blob的表

    查询含clob,blob的表select distinct ('TABLE "' || a.OWNER || '"."' || a.TABLE_NAME || '&quo ...

  7. Sublime Text3 3143 注册码,亲测可用!

    希望大家支持正版!!! 注册码: —– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA ...

  8. 20175303 2018-2019-2 《Java程序设计》第2周学习总结

    •总体的说,第2周主要学习了课本第二章第三章的内容,这周的学习简直比上一周的简单而且容易理解得多.上周的各种安装,注册,眼花缭乱,很早就开始弄,但各种出错,到最后都想放弃了,好在有同学的帮助,帮我正确 ...

  9. 与HTTP关系密切的三个协议:IP,TCP,DNS

    IP(网际协议): 位于网络层 通常易混淆的是“IP”和“IP地址”,单独讲“IP”是指一种协议名称 IP协议的作用是将各种数据包传送给对方.而要保证确实传送到对方那里,则需要满足各类条件. 其中两个 ...

  10. Linux之cat的使用

    基本介绍 工作原理 从标准输入读入要 cat 的文件列表,然后逐个打开,读入文件内容,再将内容输出到标准输出上. 使用场景 一次显示整个文件 从键盘创建一个文件 将几个文件合并为一个文件 将一个或多个 ...