计算机网络

TCP和UDP的区别

纵饮孤独 提交于 2019-12-26 23:58:38
转载至: https://www.cnblogs.com/steven520213/p/8005258.html TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于广播和细节控制交给应用的通信传输 UDP(User Datagram Protocol) UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。 即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,传输途中如果出现了丢包,UDP也不负责重发。甚至当出现包的到达顺序乱掉时也没有纠正的功能。如果需要这些细节控制,那么不得不交给由采用UDP的应用程序去处理。换句话说,UDP将部分控制转移到应用程序去处理,自己却只提供作为传输层协议的最基本功能。UDP有点类似于用户说什么听什么的机制,但是需要用户充分考虑好上层协议类型并制作相应的应用程序。 TCP(Transmission Control Protocol) TCP充分实现了数据传输时各种控制功能,可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。TCP通过检验、序列号、确认应答、重发控制

组播(Multicast)传输

五迷三道 提交于 2019-12-26 18:05:30
组播(Multicast)传输: 在发送者和每一接收者之间实现 点对多 点网络连接。 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。 单播、组播、广播的差别可以看下图: 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。 组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。 广播(broadcast):是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。 判断网卡是否支持组播 在Linux运行ifconfig, 如果网卡信息中包含UP BROADCAST RUNNING MULTICAST,则支持广播和组播。 参考: http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast 组播IP地址 组播IP地址用于标识一个IP组播组。 IANA(internet

TCP/IP三次握手和HTTP过程

流过昼夜 提交于 2019-12-26 07:28:25
1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客 户端交互,最终确定断开) 2、HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一

socket创建和结束

自作多情 提交于 2019-12-24 07:09:38
什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是 操作系统 结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是 操作系统 动态执行的 基本单元 ,在传统的 操作系统 中,进程既是基本的 分配单元 ,也是基本的执行单元。 第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。[3] 进程是操作系统中最基本、重要的概念。是多道程序系统出现后

30、网络编程

試著忘記壹切 提交于 2019-12-24 00:20:41
1、软件开发的架构:   1、C/S:服务器与客户端架构,这种结构是从用户层面(或者物理层面)进行划分的。类似QQ、微信等需要安装应用的桌面应用。   2、B/S:即Browser与服务器端架构,在浏览器上通过HTTP请求访问服务器端的资源。类似百度、知乎等需要浏览器访问能访问服务器。 2、什么是IP地址?   1、IP地址是指互联网协议地址(internet protocal adress,又名网际协议地址),是指计算机在网络上的地址,IP地址与IP协议提供的一种统一的地址协议,它为互联网每一个网络和每一个主机分配一个逻辑地址,以此来屏蔽物理地址的差异。   2、IP地址是一个32位的二进制数,通常被分为4个“8位二进制数”(也就是4个字节),IP地址通常用点分10进制数表示(a,b,c,d)的形式,a,b,c,d都是用0~255之间的整数。 3、端口:   端口英文port,意思是设备与外界通讯交流的入口,网络相关的程序需要开一个端口,为的是能找到某台计算机上唯一的一个程序。   同一台计算机、同一时间,只能有一个程序占用同一个端口。   一般情况下,8000之后的端口能用。 4、互联网协议   互联网协议就是计算机统一的标准,逻辑上把互联网分为四级。     1)IP协议属于互联网osi七层协议中的哪一层? 网络层     2

socket编程

风格不统一 提交于 2019-12-23 21:26:30
C/S架构:C指的是客户端 S指的是服务端 socket 别人写好的一组模块用来跟其他计算机实现网络通信由于研究网络协议耗时久 所以开发出一套模块便于使用使用时只要写明协议ip接口即可 使用socket之前要导入模块socket TCP 服务端: sock_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 创建套接字对象STREAM为TCP sock_server.bind((HOST, PORT)) 绑定监听的IP和端口号 sock_server.listen(1) 设置监听的最大连接数 conn, addr = sock_server.accept() 接受对端来的数据元祖并赋值给conn 和addr conn.recv(1024)接受对端数据 括号中的为字节数 conn.sendall(data) 给对端发送数据数据需为二进制 conn.close() 关闭链接 sock_server.close()关闭sock套接字 ## 由于服务端需要监听端口 断开连接后 由于tcp机制会有个timeout等待时间 重启脚本会出现端口占用的情况 有两种解决方案:修改等待时间 或者端口设置复用 端口复用:sock_server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR

浅说套接字socket做个小小的监控

﹥>﹥吖頭↗ 提交于 2019-12-23 12:47:42
socket 的简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的 进程通信 机制,取后一种意思。通常也称作" 套接字 ",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的 主机 一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务 工作的原理 脚本的工作的一些知识 socket模块的操作 datetime模块的操作 文件操作 while 循环 if 判断 列表操作 服务器的代码: #!/usr/bin/python import SocketServer import datetime host_status={} f=open('client.txt') while 1: line=f.readline().split() if len(line)==0:break host_status[line[0]]

图解TCPIP-OSI7层网络模型

假装没事ソ 提交于 2019-12-23 02:13:35
OSI(Open System Interconnect) 应用层: HTTP 表示层: 转换应用处理信息和网络传输信息. 网络传入对比特流解释不同,所以一般使用base64转码 会话层: 建立和断开通信连接 socket的listen(),accept(),connect() 传输层: TCP/UDP协议 网络层: IP地址协议 数据链路层: 将0/1序列划分为有意义的数据帧,传送 物理层 1.计算机以二进制0/1表示信息 2.传输媒介用电压的高低/光闪灭/电波的强弱表示 3.物理层就是将二者进行转换 参考: <图解TCP IP> 来源: CSDN 作者: Claroja 链接: https://blog.csdn.net/claroja/article/details/103508488

计算机网络第七版谢希仁知识点总结

て烟熏妆下的殇ゞ 提交于 2019-12-21 14:17:54
1.专有名词: 互联网服务提供商ISP(Interest Service Provider) 互联网交换点 IXP (Internet eXchange Point) 广域网WAN(Wide Area Network) 城域网MAN(Metropolitan Area Network) 局域网LAN(Local Area Network) 个人区域网PAN(Personal Area Network) 传输控制协议TCP(Transmission Control Protocol) 用户数据报协议UDP(User Datagram Protocol) 协议数据单元PDU(Protocol Data Unit) 点对点协议PPP(Point-to-Point Protocol) 网络控制协议NCP(Network Control Protocol) 链路控制协议LCP(Link Control Protocol) 逻辑链路控制LLC(Logical Link Control) 媒体接入控制MAC(Media Access Control) CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection) 循环冗余校验CRC(Cyclic Redundancy Check ) 帧校验序列FCS(Frame Check

python之路_网络协议及套接字socket

痴心易碎 提交于 2019-12-21 09:14:06
一、网络协议基础篇   一台完整的计算机由硬件、系统、软件组成,具备这三个条件,计算机就可以运行,但是只能自己和自己玩。为了实现计算机和计算机间的连接,就需要借助互联网,如全世界人类交流将英语作为标准语言一样,计算机间的交流也需要这样一个标准,即互联网协议。 1、互联网的本质   互联网的本质就是一系列的协议,总称互联网协议(internet protocolsuite),互联网的协议的功能是:定义计算机如何接入internet,以及接入internet的计算机的通信标准。 2、osi七层协议   互联网协议按照功能不同分为osi七层或者tcp/ip五层或者tcp/ip四层。从下往上接近用户,从上往下接近硬件,具体如下示意图: 3、tcp/ip五层模型讲解   清楚了每层的主要协议,就理解了整个互联网通信的原理。首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解。 (1)物理层   物理层由来:上面提到,孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网;物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。 (2)数据链路层   数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思。数据链路层的功能