Network programming based on the concept
Software development framework
We understand involves communication between two application programs can be roughly divided into two types:
The first is the application class: qq, micro-channel, network disk, belong to this category Youku desktop applications to be installed
The second is web categories: applications, such as Baidu, know almost, blog park accessed using a browser can be used directly
The nature of these applications are in fact the communication between the two programs. This corresponds to the two classifications has two software development architecture -
C / S structure
C / S namely: Client and Server, Chinese meaning: the client and server architecture, which is also the user level (can also be a physical level) to the division.
Here customers end generally refers to the client application EXE, the program needs to be installed to run on the user's computer, the user's computer operating system environments greater dependence.
B / S structure
B / S namely: Browser and Server, Chinese meaning: the browser-side and server-side architecture, which is the user level to the division.
Browser browser, is actually a Client client, but the client does not need you to install any application, simply on the browser via HTTP server related resources (web resources) request, the client browser Browser You can perform CRUD.
Development and basic concepts of computer networks
Question: What is the network in the end? How is the communication between the computer?
Early: Online
Ethernet LAN switches
broadcast
Between host "all" mode of communication network in which each signal sent by the host are replicated and forwarded unconditionally, all hosts can receive all the information (regardless of whether you need), because of its no path selection, so its network costs can be very low. Cable television network is a typical broadcast network, we actually receive TV signals of all channels, but only to restore a channel signal into a picture. In the data broadcast networks are also allowed, but its scope is limited to a local area network switcher prohibits the broadcast data through the router, the broadcast data to prevent the affected host a large area.
ip address ip protocol
- Agreement called network address ip protocol, which defines the address ip address is referred to, i.e. widely used version IPv4 v4, which indicates the network address is represented by 32-bit binary
- Range 0.0.0.0-255.255.255.255
- An ip address written as four decimal typically Example: 127.0.0.1
mac address
mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号
arp协议 ——查询IP地址和MAC地址的对应关系
广域网与路由器
路由器
局域网
局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成
子网掩码
所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
1
2
3
4
5
|
转化成二进制
print
(
bin
(
172
))
# 0b10101100
print
(
bin
(
16
))
# 0b10000
print
(
bin
(
10
))
# 0b1010
print
(
bin
(
1
))
# 0b1
|
IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。
多态机器之间的通信:
- mac:机器的唯一标识
- 网卡:一个计算机上的硬件 这个硬件出厂的时候就被分配了一个mac地址
- ip地址 :比mac好记,能够按照区域来区分(区分你在哪一个局域网内)
- 协议 : 在传输过程中规定位数 顺序等等传输规则的内容
- 交换机 : 局域网内多台机器之间的通信
- arp协议 :通过ip地址找到mac地址
局域网概念:
- 路由器:能够做局域网与局域网之间的通信
- 网关ip:在一台机器对局域网外的地址进行访问的时候使用的出口ip
- 端口 : 帮助我们找机器上的对应服务 0-65535 惯用的端口号 80,8000之后
ip的保留字段:
- 0.0.0.0-255.255.255.255
- 10.0.0.0-10.255.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
本地的回环地址:127.0.0.1 别的人找不到你 只有你自己这台机器能找到你自己
全网段地址:0.0.0.0 谁都可以访问你
软件开发的架构
我们了解的涉及到两个程序之间通讯的应用大致可以分为两种:
第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用
第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用
这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构~
C/S架构
C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。
这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。
B/S架构
B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。
Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。
计算机网络的发展及基础概念
问题:网络到底是什么?计算机之间是如何通信的?
早期:联机
以太网局域网交换机
广播
主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
ip地址与ip协议
- 规定网络地址的协议叫ip协议,它定义的地址称作ip地址,广泛采用v4版本即ipv4,它表示网络地址由32位2进制表示
- 范围0.0.0.0-255.255.255.255
- 一个ip地址通常写成四段十进制数 例:127.0.0.1
mac地址
mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号
arp协议 ——查询IP地址和MAC地址的对应关系
广域网与路由器
路由器
局域网
局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成
子网掩码
所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
1
2
3
4
5
|
转化成二进制
print
(
bin
(
172
))
# 0b10101100
print
(
bin
(
16
))
# 0b10000
print
(
bin
(
10
))
# 0b1010
print
(
bin
(
1
))
# 0b1
|
IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。
多态机器之间的通信:
- mac:机器的唯一标识
- 网卡:一个计算机上的硬件 这个硬件出厂的时候就被分配了一个mac地址
- ip地址 :比mac好记,能够按照区域来区分(区分你在哪一个局域网内)
- 协议 : 在传输过程中规定位数 顺序等等传输规则的内容
- 交换机 : 局域网内多台机器之间的通信
- arp协议 :通过ip地址找到mac地址
局域网概念:
- 路由器:能够做局域网与局域网之间的通信
- 网关ip:在一台机器对局域网外的地址进行访问的时候使用的出口ip
- 端口 : 帮助我们找机器上的对应服务 0-65535 惯用的端口号 80,8000之后
ip的保留字段:
- 0.0.0.0-255.255.255.255
- 10.0.0.0-10.255.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
本地的回环地址:127.0.0.1 别的人找不到你 只有你自己这台机器能找到你自己
全网段地址:0.0.0.0 谁都可以访问你