Akka 网络编程基础 | 学习笔记

简介: 快速学习 Akka 网络编程基础

开发者学堂课程【Scala 核心编程 - 进阶Akka 网络编程基础学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9117


Akka 网络编程基础


内容介绍:

一、引出问题

二、Akka网络编程基本介绍


一、引出问题

上节讲的两个案例虽然提到了 akka ,但是没有涉及到网络,实际上在开发中一定是网络通信,不可能在同一台机器上跑程序,因为一台计算机的能力是有限的,只能将任务分配到不同的服务器上,才能有效的发挥集群的威力。于是必不可少的涉及到网络问题。

Akka 网络编程更加轻松,最早是 socket 编程,其底层是 tcp/ip

1.看两个实际应用(socket/tcp/ip)

(1)QQ,迅雷,百度网盘客户端.  新浪网站,京东商城,淘宝

该图为 Tcp 编程。

基于网站的,一般叫 Http 编程(建设在 Tcp/ip 基础之上,应用级别更高),如下图

image.png


二、Akka 网络编程基本介绍

Akka 支持面向大并发后端服务程序,网络通信这块是服务端程序重要的部分。

1.网络编程有两种:

1) TCP socket 编程,是网络编程的主流。之所以叫 Tcp socket 编程,是因为底层

是基于 Tcp/ip 协议的.比如;QQ 聊天

2) b/s 结构的 http 编程,我们使用浏览器去访问服务器时,使用的就是http 协议,

http 底层依旧是用 tcp socket 实现的。比如:京东商城【属于 web  开发范畴】

(域名劫持,通过网络将 DNS 攻破, DNS 一旦域名被劫持,所有请求到目标网站的人都会到一个钓鱼网站的ip)

image.png

2.协议(tcp/ip)

TCP/IP ( Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的协议、Internet 国际互联网络的基础,简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。

OSI 与 Tcp/ip 参考模型(推荐tcp/ip协议3卷)

(下表因为操作起来特别麻烦所以没有实现)

应用层(application)

表示层(presention)

会话层(session)

传输层(transport)

网络层(ip)

数据链路层(link)

物理层(phy sical)

osi模型(理论)

在真实的网络世界中,网络分为4层(下表)

应用层(application)

smtp,ftp,telnet http

传输层: (transport)解释数据

网络层:(ip)定位ip地址和确定连接路径

链路层:(link)与硬件驱动对话

Tcp/ ip模型(现实)

3.网络分为4层,每一层都有其功能,举个例子

QQ 要发一条消息 “hello“ 给另外一个人,每一个计算机电脑都会装 TCP/IP 协议,当要从网络传输时,首先要经过应用层,给其加一个 APP,代表要发给这个程序,然后经过传输层,再加一个 TCP ,再经过网络层,将 IP 加上。经过链路层,会加一个帧头和帧尾,这时信息变成一帧数据。

整个信息到网卡,网卡经过一系列的路由器最终到达对方,对方也会安装 TCP/IP 协议。如果没有 TCP/IP 协议则无法上网,也没有任何网络通讯工具,对方会通过链路层将帧头和帧尾去除,经过网络层就把 ip 去除,经过传输层就把 TCP 去掉,经过应用层就将 APP 去掉,这就是为什么一边发的QQ 信息另一边可以接收到的根本原因。

4.补充

在做程序、管理、运维、服务器管理时遇到网络不通时,要排除哪一台路由器出现问题,可以用 tracert 这个指令,tracert 指令可以追踪路由,可以看到经过哪些路由器,如果发现出现问题,就知道哪一台路由器有问题。

5.ip 地址

概述:每个 internet 上的主机和路由器都有一个 ip  地址,它包括网络号和主机号,ip 地址有 ipv4 (32位)或者 ipv6 (128位).可以通过 ipconfig 来查看

为什么有 ipv4 还要有 ipv6

ipv4 的ip 不够用,美国一个互联网中心希望将来所有设备都有一个 ip 地址,不仅仅是电脑。

6.ipv4ipv6的区别

IPv4的地址位数为32位,也就是最多有2的32次方的电脑可以联到 Internet 上,近十年来由于互联网的蓬勃发展, IP 位址的需求量愈来愈大,使得 IP 位址的发放愈趋严格,各项资料显示全球 IPv4 位址可能在2005至2008年间全部发完。

IPv4中规定IP地址长度为32,即有 2^32-1个地址,而 IPv6 中 IP 地址的长度为128,即有 2^128-1个地址。

7.端口(port)介绍

我们这里所指的端口不是指物理意义上的端口,而是特指 TCP/IP 协议中的端口,是逻辑意义上的端口。

如果把 lP 地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个 IP 地址的端口可以有

65535(即:256×256-1)个之多!端口是通过端口号来标记的。(端口号0 :Reserved)

8.端口(port)分类

10号是保留端口.

2)1-1024是固定端口

又叫有名端口,即被某些程序固定使用,一般程序员不使用.

22:SSH远程登录协议   23: telnet使用   21: ftp使用

25:smtp服务使用   80: lis使用   7: echo服务

3)1025-65535是动态端口

这些端口,程序员可以使用.

建议以后设计端口用一万以上的,如果开发中发现有些端口没有启用,在监听,小心它可能是木马

9.端口(port)使用注意

1)在计算机(尤其是做服务器)要尽可能的少开端口

2)一个端口只能被一个程序监听(不能同时监听同一个端口)

3)如果使用 netstat -an 可以查看本机有哪些端口在监听

4)可以使用 netstat -anb 来查看监听端口的 pid,在结合任务管理器关闭不安全的端口.

5)如下图

image.png

有一台服务器,一个客户端A他们之间相互通讯,假设这个服务器监听的是80端口,又有一个客户端B,个80端口是可以被多个程序连接的,因为这不是监听而是连接,这就叫并发。另外,一旦连接形成,客户端也会有端口与之对应,该端口一般是随机分配的。(TCP 协议或者网络通信都会有端口的对应)

为了授课方法,我们将 tcp socket 编程,简称 socket 编程.下图为 socket 编程中客户端和服务器的网络分布

image.png

相关文章
|
6月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
116 0
|
6月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
132 0
|
1月前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
435 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
5月前
|
存储 算法 网络虚拟化
【计算机网络】学习笔记,第三篇:数据链路层
现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间,也是使用 RJ-45 和 5 类线(即以太网使用的网线)进行连接的,并且也是使用 PPPoE 弹出的窗口进行拨号连接的
81 5
|
1月前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
40 0
|
3月前
|
机器学习/深度学习 自然语言处理 并行计算
【深度学习+面经】Transformer 网络学习笔记
Transformer模型的核心概念、优缺点以及在多个领域的应用,并提供了针对Transformer架构的面试问题及答案。
156 2
|
6月前
|
监控 Java 数据库连接
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
54 3
|
6月前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
|
6月前
|
网络协议 网络架构 数据格式
计算机网络学习笔记(一)
OSI七层网络模型旨在支持异构网络互联,从下到上分别为物理层(传输比特流)、数据链路层(帧传输,如交换机)、网络层(IP数据包路由,如路由器)、传输层(TCP/UDP,端到端通信)、会话层(管理会话)、表示层(数据格式转换)和应用层(用户接口,如FTP, SMTP)。每一层负责不同的通信功能,并通过协议如PPP, IP, TCP等协同工作。
37 0
|
6月前
|
缓存 网络协议 开发者
计算机网络学习笔记(三)
TCP的异常终止使用reset报文,用于强制关闭连接,不等待正常四次挥手。RST标志位设置时,发送方直接丢弃缓存,接收方无需确认。常见情况包括:尝试连接服务器未开放的端口、一方异常崩溃、收到不属于现有连接的报文、超时未收到确认报文或应用开发者优化效率。reset报文帮助释放资源,防止连接挂起。
57 0

热门文章

最新文章