网络联机
来源:互联网 发布:btsow最新域名 编辑:程序博客网 时间:2024/05/01 21:36
TCP/IP协议(transport Control Protocol)/(internet protocol)
tcp主要用于实现源主机与目的主机操作系统之间分布式进程通信的功能,ip协议主要用于标识节点地址与实现路由选择功能
路由器(router):
ip+端口就组成了目的主机+主机内的目的进程(服务:FTP服务,web服务等,也可以解释为应用程序)
域名系统(Domain Name System,域名系统DNS)
DNS是指:域名服务器(Domain Name Server)
域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。
以太网:以太网就是【采用了CSMA/CD协议的局域网】
mac地址, MAC地址已经写在网卡芯片上,固定,不会变,与公网IP地址一样全球唯一
ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议
网关(Gateway)
网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
(判断两个IP地址是否在同一个子网),用二进制数字“1”表示,1的数目等于网络位(子网号)的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度,子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)
A类私有 地址:10.0.0.0-10.255.255.255B类私有 地址:172.16.0.0-172.31.255.255C类私有 地址:192.168.0.0-192.168.255.255
私网下还分有很多子网。子网内的各个主机可以相互直接访问(即在Socket里给IP地址就可以连接),访问不在子网内的IP地址时(如何判断该地址不在同一子网就用到子网掩码),主机先去找默认网关,由默认网关去找目的地址。
广域网(WAN、公网、外网)与局域网(LAN、私网、内网)电脑交换数据要通过路由器或网关的NAT(网络地址转换)进行。一般说来,局域网(LAN、私网、内网)内电脑发起的对外连接请求,路由器或网关都不会加以阻拦,但来自广域网对局域网内电脑连接的请求,路由器或网关在绝大多数情况下都会进行拦截。
Socket
把Socket理解为一个连接(一条连线)的一端(端点)。
每个端点有两个串流,一个是输入流(用socket.getInputStream()得到,某个Socket A的输入流,指从这个A的另一端(也是Socket)读取数据 ),一个是输出流(用socket.getoutputStream()得到,某个Socket A的输出流,指输出数据到这个A 的另一端(也是Socket)).
关于:
ServerSocket serverSock =new ServerSocket(4242);服务器监听4242端口(1处).
有客户端请求4242端口(Socket sock =new Socket("120.0.0.1",4242);(此Socket为3处))后
Socket sock =serverSock.accept();(此Socket为2处).
这个函数先新建一个Socket,然后等待客户端的连接请求,然后就是
三次握手
在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接
第一次握手:客户端尝试连接服务器,向服务器发送syn包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入SYN_SEND状态等待服务器确认
第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
定睛一看,服务器socket与客户端socket建立连接的部分其实就是大名鼎鼎的三次握手
服务端从Socket的InputStream中读取数据的操作也是阻塞式的,如果从输入流中没有读取到数据程序会一直在那里不动,直到客户端往Socket的输出流中写入了数据,或关闭了Socket的输出流。;类似从屏幕读取数据,一直不动直到按下回车。
当服务端监听客户端的输出流while ((message = reader.readLine()) != null)时,客户端若断开连接,服务端会马上抛出异常,
所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象
socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。
- 网络联机
- vs2005网络联机调试方法
- Steam 网络联机配置代码
- 联机
- MAYA联机网络渲染映射版
- JAVA Socket 网络联机 客户端 服务端 笔记
- Linux查看网络的联机状态
- GUI和网络联机测试小程序
- windbg 通过网络联机调试配置
- 网络连接 要联机,你想用哪一个连接?
- 联机备份
- ubuntu 联机
- 联机错误
- iax联机
- 联机装箱
- Lunix网络编程之socket(客户端发送请求,服务器处理例如:排序,两人联机五子棋)
- 有感于联机帮助
- 在线SQLSERVER2000联机丛书
- 万恶的memset
- 优雅编程之拥有这些习惯,你就“正常”了(十一)
- java学习
- zzzrrraamm
- WordPress插件 | 在WordPress中使用FontAwesome
- 网络联机
- LeetCode 366. Find Leaves of Binary Tree
- C语言自增自减 比较运算符 逻辑运算符的使用 运算符的优先级
- webview过滤广告终极招式
- NOIP2011普及组 瑞士轮(分治)
- sqlite学习
- [编程规范]三、类型转换
- 多进程编程
- 静态内存与动态内存的分配