Socket IO与NIO(一)

7层网络模型-OSI

Sending Computer:

Application应用层-->

Presentation表示层 把应用的数据表示成对应的数据层面的东西 比如说字符串要转换成Byte数据-->

Session会话层 他主要目的是不同机器之间建立管理的作用,把不同机器之间建立一个会话的管理-->

Transport传输层 接受上一层的数据在必要的时候把数据进行分割并将这些数据交给网络层,并保证这些数据段的有效性,有效性包括什么呢?把你的数据有效的传输给对面。-->

Network网络层 控制子网的运行,比如逻辑地址进行分组的传输,以及路由的选择-->

Data Link数据链路层 作用是进行物理的地址寻找,同时将原始的bit流转换为逻辑传输路线。-->

Physical物理层 进行机械的电子的定时的一个接口通信上的原始的bit流传输,在这里就是电信号的传输或者光信号的传输。

Receiving Computer

Physical物理层

Data Link数据链路层

Network网络层

Transport传输层

Session会话层

Presentation表示层

Application应用层

基础层:物理层、数据链路层、网络层

传输层:TCP-UDP协议层、Socket

高级层:会话层、表示层、应用层

网络模型-对应关系

OSI Model Layers

TCP/IP Protocol Architecture Layers

TCP/IP Protocol Suite(Telnet FTP SMTP DNS路由 RIP路由 SNMP是个管理层面的东西 用来进行你下属的连接设备之间消息的作用)

Telnet FTP SMTP这三个用的是TCP

DNS RIP SNMP这三个用的是UDP

IP这部分包括ARP IGMP ICMP

网络层有 Ethernet、 Token Ring、Frame Relay、ATM

Socket与TCP、UDP

Socket就是对TCP、UDP进行的封装

什么是Socket?

简单来说就是IP地址与端口的结合协议(RFC 793),是一种地址与端口结合的描述协议。 Socket是TCP/IP协议相关API的总称;是网络API的集合实现。

Socket的作用与组成

在网络传输中用于唯一标识两个端点之间的链接。 端点包括(IP+Port),就好比IP是你的家 端口是你家的窗户,你卧室的窗户和对面女神房子的卧室窗户进行链接,这时你就可以进行对话。 4个要素:客户端地址、客户端端口、服务器地址、服务器端口。

Socket的传输原理

IP address + Port number = Socket

Socket 之 TCP

TCP是面向连接的通信协议。

通过3次握手建立连接,通讯完成时要拆除连接。比如你要和你的女神说话,你首先要问他一下有没有空 可不可以和你说会话,然后女神说有空, 那么这时候才会进行到第三次说好了 我们进行连接了 开始谈话。拆除连接就是说我要走了,对面就说好 那你走吧,然后你说我真走了,然后对面 好 你走吧,最后你走了 他断开了 他也不再关注你的窗户了。 由于TCP是面向连接的,所以只能用于端到端的通讯。意思是你在和的女神进行交流的时候,你是不能去看其他人的,这就是TCP的通信,你在某一个 时刻 你只能连接到他的某个端口。

Socket 之 UDP

UDP是面向无连接的通讯协议,不需要连接。

UDP数据包括目的端口号和源端口号信息,意思是UDP里面涵盖了目标端口号和你自己的一个端口号。比如你现在要说一句话对你的女神讲,这时候你的女神 是不在的,你可能说给了他的妈妈,你说我想要对某某人说,我喜欢你这句话,首先你说这叫话的时候,你妈妈作为一个转接者,他给她女儿讲的时候 怎么说呢,某某男生对你说了我喜欢你这句话。 由于通信是不需要连接的,所以可以实现广播发送,并不局限于端到端。假如说你是一个老师,现在要发一个通知到你的班,你是一个个的找学生对 他说某一个安排呢,还是说你上课的时候对着全班说一下这样来的好,这是UDP和TCP最大的区别。

TCP传输图解: 首先是进行一个TCP数据的传输发送,同时他会收到一条TCP的回复(ACK)代表这个数据收到了,这个回复不是你来完成的,而是TCP层面 数据层面已经 完成了这个封装。当你要发送一个数据到服务器的时候,其实这条数据只有两种状态,一种是发送成功,一种是发送失败,这有这两种状态。

UDP传输图解: UDP只管发送数据,他不管回送。

Client-Server Application:

TCP/IP协议中,两个进程间的主要模式为:CS模型。

主要目的:协议网络中的计算机资源、服务器模式、进程间数据共享。

常见的:FTP、SMTP、HTTP

报文段:

报文段是指TCP/IP协议网络传输过程中,起着路由导航作用。

用于查询各个网络路由网段、IP地址、交换协议等IP数据包。

报文段充当整个TCP/IP协议数据包的导航路由功能。

报文在传输过程中会不断地封装成 分组 包 帧来传输。当你的数据太大的时候,它会把你一批大的数据转换成组或包或帧,然后解析成一个一个 数据点,然后通过小的数据点传输过去。例如你想发送我需要先发送一部分过去,再会送这部分是否成功。在这整个过程当中,他会把你的 整个buffer解析成很多很多的小的buffer,然后在前面加上一个小的报文头,然后进行一个批量的发送,每一批数据都有一定的校验作用。 封装方式就是添加一些控制信息组成的首部,即报文头。

传输协议:

协议顾名思义,一种规定,约束。

约定大于配置,在网络传输中依然适用;网络的传输流程是健壮的 稳定的,得益于基础的协议构成。 简单来说:A->B的传输数据,B能识别,反之B->A的传输数据A也能识别,这就是协议。例如你去访问一个网站,首先是需要输入网站的地址,然后 他需要进行一个网站的地址查询,然后去访问这个网站对应的服务器IP+端口号,然后网站会返回他的首页信息给你,这个过程依次往下进行 交互,所以这样的过程就称之为传输协议。

MAC地址:

Media Access Conntrol或者Medium Access Control。

意译为媒体访问控制,或称为物理地址、硬件地址。

用来定义网络设备的位置。

形如:44-45-53-54-00-00;与身份证类似。

IP地址:

互联网协议地(Internet Protocol Address,又译为国际协议地址),缩写为IP地址(IP Address)。

是分配给网络上使用国际协议的设备的数字标签。

常见的IP地址分为IPv4与IPv6两大类。

IP地址由32位二进制组成,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数。 分为A、B、C、D、E五大类,其中E类属于特殊保留地址。

IP地址-IPv4:

总数量:4,294,967,296(即232):42亿个;最终于2011年2月3日用尽。

如果主机号全是1,那么这个地址为直接广播地址。代表整个因特网的广播地址,如果你往这个地址发信息他会被局域网的防火墙拦截。

IP地址 255.255.255.255 为受限的广播地址。代表你局域网的广播地址。

IP地址-IPv6:

总共有128位长,IPv6地址的表达形式,一般采用32个16进制数,也可以想象为1632个。

由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64位扩展唯一标识)。

IPv4转换为IPv6一定可行,IPv6转换为IPv4不一定可行。

端口:

如果把IP地址比作一间房子,端口就是出入这间房子的门或者窗户。

在不同的窗户后有不同的人,房子中的用户与外界交流的出口。

外界鸽子(信息)飞到不同的窗口也就是给不同的人传递信息。

0到1023号端口以及1024到49151号端口都是特殊端口。

特殊端口:

FTP 20,21 TCP

SSH 22 TCP

Telnet 23 TCP

SMTP 25 TCP

DNS 53 UDP

TFTP 69 UDP

HTTP 80 TCP

POP3 110 TCP

IMAP4 143 TCP

HTTPS 443 TCP

计算机之间依照互联网传输层TCP/IP协议的协议通信,不同的协议都对应不同的端口。

49152到65535号端口属于“动态端口”范围,没有端口可以被正式注册占用。

问题:端口总数65536,连接能建立多少个?65536个?

不是,65536代表的是你本地电脑的端口号。对于服务器而言端口是复用的,比如说服务器他监听80端口,无论多少个客户端来,他都是通过80号端口进行通信,不会创建而外多余的端口。

数据传输层:

                                                        Data -->
                                        UDP header + UDP data -->
                           IP header    +     IP data  -->
            Frame header            + Frame data               + Frame footer
复制代码

远程服务器:

局域网:一般而言,家里的环境以及公司相互电脑之间环境都属于局域网。

我与你们电脑之间是属于互联网,而不是局域网。

默认:我的电脑无法直接链接到你们的电脑。因为你的电脑在你的局域网中,我的电脑在我局域网中,你的电脑IP地址不是互联网的IP地址,而是 你的局域网IP地址,我的IP一样。 两个局域网之间内部电脑要进行通信需要一台拥有外网IP的服务器,他的地址是固定的,而且是对外所有的设备都有效的一个IP地址, 你的电脑连接到服务器,然后服务器也连接到我的电脑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值