计算机网络

什么是PHP Socket?

三世轮回 提交于 2019-12-03 20:59:14
什么是 Socket? Socket 的中文翻译过来就是“套接字”。套接字是什么,我们先来看看它的英文含义:插座。 Socket 就像一个电话插座,负责连通两端的电话,进行点对点通信,让电话可以进行通信,端口就像插座上的孔,端口不能同时被其他进程占用。而我们建立连接就像把插头插在这个插座上,创建一个 Socket 实例开始监听后,这个电话插座就时刻监听着消息的传入,谁拨通我这个“IP 地址和端口”,我就接通谁。 实际上,Socket 是在应用层和传输层之间的一个抽象层,它把 TCP/IP 层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。Socket 起源于 UNIX,在 UNIX 一切皆文件的思想下,进程间通信就被冠名为 文件描述符(file descriptor) ,Socket 是一种“打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个“文件”,在建立连接打开后,可以向文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。 另外我们经常说到的 Socket 所在位置 如下图: Socket 通信过程 Socket 保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。两端都建立了一个 Socket 对象,然后通过 Socket 对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。 一图胜千言

TCP传输协议

孤街醉人 提交于 2019-12-03 20:58:39
当时查http协议的时候了解的一些网络底层的知识,感觉挺有意思的,就把多位博主的资料整料梳理出来整理到一堆,就当是一篇科普文吧。 一、网络的五层模型 如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成五层,比较容易解释 。 如上图所示,最底下的一层叫做"实体层"(Physical Layer),最上面的一层叫做"应用层"(Application Layer),中间的三层(自下而上)分别是"链接层"(Link Layer)、"网络层"(Network Layer)和"传输层"(Transport Layer)。越下面的层,越靠近硬件;越上面的层,越靠近用户。 一、层与协议 互联网的每一层,都定义了很多协议。这些协议的总称,就叫做"互联网协议"(Internet Protocol Suite)。它们是互联网的核心,下面介绍每一层的功能,主要就是介绍每一层的主要协议。 二、实体层: 内容小结:电脑连接起来的物理手段 实体层,它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。 三、链接层: 内容小结:在同一个子网络里发送数据包。 3.1 定义 链接层,它在"实体层"的上方, 通过以太网协议在同一个子网络里发送数据包 。 3.2 以太网协议(不是http协议) 以太网规定,一组电信号构成一个 数据包 ,叫做"帧"(Frame)

计算机网络学习笔记:第一章.概述

主宰稳场 提交于 2019-12-03 20:45:45
本文是《计算机网络》的自学课程,视频地址为: https://www.bilibili.com/video/av47486689。仅做个人学习使用,如有侵权,请联系删除 第一章:概述 1.2 因特网概述 网络设备叫做节点,网线叫做链路,左图那个中心节点是交换机 互联网是网络之间用路由器连起来,路由器还有广域网接口,可以接万维网 交换机的符号: 路由器的符号: 互联网!=因特网 。因特网是全球最大的一个互联网,而其实只要任意两个网络联通就可以叫互联网。这两个其实名字是不一样的,互联网是internet,而因特网是Internet,一个大写一个小写。 还有一个常见的名称叫“以太网”,什么是以太网呢? 来源: https://www.zhihu.com/question/19918493 整个因特网使用的就是TCP/IP协议来实现相互通信 因特网发展的三个阶段: ARPANET,高级研究计划局网络,通称阿帕网,是美国国防高级研究计划局开发的世界上第一个运营的数据包交换网络,是全球互联网的鼻祖。 在1990年停止使用。 1975年互联网产生,1983年TCP/IP协议成为互联网标准协议,但直到那时它依然是用于美国国防部的。 TCP/IP诞生的时候由于是内部网络,所以默认主机不是恶意的,因此在网络设计上有安全性的不足,可以进行arp欺骗等,现在的新型网络协议,例如Ipv6已经克服了这个问题

计算机网络学习笔记:第二章.物理层

无人久伴 提交于 2019-12-03 20:45:40
本文是《计算机网络》的自学课程,视频地址为: https://www.bilibili.com/video/av47486689。仅做个人学习使用,如有侵权,请联系删除 第二章:物理层 概述 物理层研究的是数据在物理机器上的传输,而不是研究机器本身: 数据通信的基础知识 这部分更关注于通信而不是计算机 这是使用电话拨号上网的老模式 通信的目的是传送消息,数据(data)是运送消息的实体: 码元实际上就是一个波形 信道 对讲机就是半双工 基带信号和带通信号 基带信号处理之后就是带通信号: 基带信号也不是一定不能直接使用: 调制方法 调制方法: 调幅:低电平的时候幅度小,高的时候幅度大 调频:低电平时候频率低,高电平时候频率高 调相:低电平是正弦,高电平换成余弦 数据编码 常用编码: 示例图如下: 上面的码有一个问题,就是不能区分是接受停止了还是接受的是0.曼彻斯特编码就是为了解决这个问题: 和上面的相比,上面的方法采样的是值,而曼彻斯特编码采样的是变化 差分曼彻斯特编码: 差分曼彻斯特编码看的是信号之间的电平跳变 应用: 注意看曼彻斯特编码的000,为了能得到表示0的标准波形,其会在信号的采集边缘改变电平 画曼彻斯特编码,可以理解为将0和1的标准波形先摆在一起,然后在边界进行连接。 对于差分曼彻斯特编码,其在一个时钟周期内是要发生一次电平变化的,一开始是0就变成1,是1就变成0

计算机网络学习笔记:第三章.数据链路层

核能气质少年 提交于 2019-12-03 20:45:35
本文是《计算机网络》的自学课程,视频地址为: https://www.bilibili.com/video/av47486689。仅做个人学习使用,如有侵权,请联系删除 第三章:数据链路层 概述 数据链路层的基本概念: 数据发送模型 从层次上来看数据的流动 路由器检查数据链路层看是不是给自己的,如果是的话再看网络层决定走哪个口发出去。然后到数据链路层进行重新封装以比特流传递。 我们这一章只看数据链路层 数据链路层的信道模型 链路与数据链路 链路指的是物理的线路 网卡+链路=数据链路 帧 数据链路层传输的是帧 在数据链路层加上开始和结束,进入物理层进行传输。到了对方节点的数据链路层再把开始和结束去掉 数据链路层像一个数据管道 三个要解决的基本问题 封装成帧 MTU:最大传输单元,以太网中不能超过1500字节 接收端如果没有接收到帧开始符或者结束符,就会把这个帧扔掉,因为这不是一个完整的帧。 透明传输 如果传输的数据不是仅由“可打印字符”组成时(在传输二进制文件的时候常常发生),就会出现问题 解决方法:转义 最后处理数据的话需要再去掉 差错控制 判断错误的方法: 计算公式如下: 加n位0 除一个(n+1)位数,这个数随意选 做模二除法(每一位做异或运算,注意这不是二进制除法!) 最后传递的是:原本的数据+余数 接收方收到后用这个数再对那个(n+1)位数做除法,如果余数是0

网络七层协议、五层协议与四层协议

痴心易碎 提交于 2019-12-03 20:24:46
  OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。具体说: 物理层:网卡,网线,集线器,中继器,调制解调器 数据链路层:网桥,交换机 网络层:路由器 网关工作在第四层传输层及其以上   集线器是物理层设备,采用广播的形式来传输信息。   交换机就是用来进行报文交换的机器。多为链路层设备(二层交换机),能够进行地址学习,采用存储转发的形式来交换报文.。   路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率。 交换机的工作原理   交换机拥有一条很高带宽的内部总线和内部交换矩阵。交换机的所有的端口都挂接在这条总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在则广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。 使用交换机也可以把网络

网络编程

浪子不回头ぞ 提交于 2019-12-03 17:25:06
IP 地址: 用来标记网络中的一台计算机,即通信实体的地址 网络号+主机号 A-E五类地址,常用C类 目前主流的IP地址是IPV4,IPV6 IP地址实际上是一个32位的整数,以字符串表示的IP地址实际上是把32位整数按8位分组后的数字表示 127.0.0.1 本机地址 192.168.0.0端口: 端口是虚拟的概念,端口表示一个16位的二进制整数0-65535协议: 计算机网络实现通信必须要有的约定即通信协议 网络协议的基本框架OSI框架,OSI模型 七层模型 : 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 上层可以调用下层 TCP/IP协议族 多个协议 四层模型 应用层 (应用层+表示层+会话层) 传输层 TCP/UDP 互联网络层 IP 网络接口层 (物理层+数据链路层)TCP/UDP Socket 编程接口 Socket 分为TCP编程和UDP编程两类 TCP 面向连接 传输数据安全 稳定 效率相对较低 UDP 面向无连接 传输数据不安全 效率较高socket() socket.socket([family[,type[,proto]]]) family 套接字家族 可以使用AF_UNIX AF_INET AF_UNIX 只能够用于单一的Unix系统进程之间的通信 AF_INET 服务器之间的网络通信 套接字家族按照面向连接还是无连接可以分为SOCK

Netperf测试技巧

北城余情 提交于 2019-12-03 13:26:47
Netperf 测试技巧 Netperf 测试技巧 1. 概况 Netperf 是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。 Netperf 根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。 Netperf 测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。 Netperf 工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是 netperf ,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。 2. 安装 Netperf (1)运行命令下载 Netperf wget -c "https://codeload.github.com/HewlettPackard/ netperf /tar.gz/ netperf -2.5.0" -O netperf -2.5.0.tar.gz (2)运行以下命令安装

Java 网络编程

风格不统一 提交于 2019-12-03 12:18:43
网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。 java.net 包中提供了两种常见的网络协议的支持: TCP :TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。 UDP :UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。 本教程主要讲解以下两个主题。 Socket 编程 :这是使用最广泛的网络概念,它已被解释地非常详细。 URL 处理 :这部分会在另外的篇幅里讲,点击这里更详细地了解在 Java 语言中的 URL 处理。 Socket 编程 套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。 当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。 java.net.Socket 类代表一个套接字,并且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们建立连接的机制。 以下步骤在两台计算机之间使用套接字建立TCP连接时会出现:

计算机网络知识

我的未来我决定 提交于 2019-12-03 07:14:47
计算机网络知识   网络体系结构   传输介质,传输技术,传输方法,传输控制   常用网络设备和各类通信设备的特点   Client-Server 结构,Browser-Server 结构   LAN(拓扑,存取控制,组网,网间互连)   Internet 和 Intranet 基础知识以及应用   网络软件,网络管理,网络性能分析    OSI模型与TCP/IP网络体系结构    1.OSI模型   OSI网络体系结构中共定义了七层,从高到低分别是:    应用层(Application) :直接为端用户服务,提供各类应用过程的接口和用户接口。诸如:HTTP,Telnet,FTP,SMTP,NFS等。    表示层(Presentation) :使应用层可以根据其服务解释数据的含义。通常包括数据编码的约定、本地句法的转换。诸如:JPEG,ASCII,GIF,DES,MPEG等。      会话层(Session) :负责管理远程用户或进程间的通信,通常包括通信控制、检查点设置、重建中断的传输链路、名字查找和安全验证服务。诸如:RPC,SQL,NFS等。    传输层(Transport) :实现发送端和接收端的端到端的数据分组传送,负责保证实现数据包无差错、按顺序、无丢失和无冗余的传输。其服务访问点为端口。代表性协议有: TCP (可靠,面向连接,建立连接时要进行3次握手