文档章节

网络编程和线程

凯哥学堂
 凯哥学堂
发布于 2017/07/14 20:57
字数 2192
阅读 2
收藏 0
点赞 0
评论 0

image

一、网络

(1)Unix 和 liunx是网络处理最好的操作系统。

(2)网络必须要有网卡才能进行网络的连接。

(3)原来网络走线方式,上网和电话线进入终端后一根线连接入户,这根线连接到数据分离器,分为ADLS端口和电话,再接收回来时,进过分离器传输到终端判断一下进入各自的线路。

image

二、网络分为广域网、城域网、局域网

中国最大的网络是国家骨干网,中国移动、联通、电信,都是靠骨干网分下来的网速。

1.广域网,在骨干网上拥有独立的IP地址。

2.城域网,一个城市所有联网用户共用一个IP地址。

3.局域网,每户把家里网络通过路由器连接多台设备。

电信采用的是每家每户都是独立的ip地址。广域网的IP地址就可对每台计算机独立的进行通讯。

image

三、IP地址

(1)IP地址:是由数字组成的地址号。

(2)IP是来确定是哪台计算机。

(3)IP地址分为IPv4和IPv6。

image

(4)查看电脑IP。

image

(5)Ping是一个程序,是跟对方的程序进行一个交互,如果对方没开就不能成功 查看运行速度。

image

四、端口

(1)端口是一个数字。

(2)端口的作用是用来确定一台计算机的某一个应用程序的。

(3)端口是怎么进行传输的?

有两台电脑,一台电脑的IP是11.15.16.222需要向11.15.223传输数据,如果没有端口的话,你这里传出的数据就不知道给谁接收。如果写上端口的话,电脑就会寻找4040这个端口程序来进行传输。

image

(4)端口是用于区分网络程序。

(5)一个端口可以给不同协议占用,但是不可以给同一个协议占用。比如一个端口8080给TCP占用也可以给YDP占用,但是8080这个端口不能给两个同样的协议占用。

(6)4000以上的端口都可以申请,4000以下为系统保留端口

五、端口映射

1.手动映射:

image

(1)现在有两个人一个人用的是电信网络,接入的是ADSL拨号上网,IP地址是55.6.4.2。另一个人用的也是电信ADSL拨号上网,但是连接到了路由器IP地址为55.6.4.3,由路由器给电脑分配了一个局域网的IP地址为192.168.1.55.

(2)为什么192.168.1.55计算机找55.6.4.2计算机非常容易就可以找到? 因为182.168.1.55这台计算机,只需要输入55.6.4.2这台计算机的IP:55.6.4.2和端口号8888对应就可以访问了,因为55.6.4.2是广域网里面的IP是独立的,所以很容易就可以访问。

(3)而当55.6.4.2计算机想访问192.168.1.55计算机就非常困难呢? 因为55.6.4.2:9999计算机想访问182.168.1.55计算机的9999端口时,因为一个是广域网的IP地址,一个是局域网的IP地址,他们不能相互进行访问,广域网IP地址只能访问广域网的IP地址。如果是访问55.6.4.3.9999的话也是不行的,因为这个地址是路由器的地址跟电脑的IP地址没有关系,所以也连接不到。

(4)怎么样解决55.6.4.2计算机连接192.168.1.55的计算机的问题? 在路由器中会有一个叫转发策略的东西。什么是转发策略?转发策略就是在路由器中会生成一个对外端口假设为19999,然后让他转发到192.168.1.55:9999的端口上,这样外界只要输入55.6.4.3.19999在经过路由器是就会触发转发转换成192.168.1.55.9999的IP端口就可以收到消息,这就称为端口映射。

2.自动映射

(1)自动映射的意思是:局域网内的程序去访问网络,路由器会自动给你程序带上一个端口映射,这样广域网的服务器就可以给你回执消息。

image

比如一台计算机要浏览网页,就需要先访问路由器,路由器访问光纤猫,光纤猫访问广域网,广域网访问kaige123的网页服务器。

电脑的IP地址是192.168.1.55在需要浏览网页的时候,经过路由器,路由器自动把这个IP换成路由器的IP和需要访问Kaige123服务器的端口号20014即(61.5.4.3:20014),直接访问对方的服务器,kaige123的服务器就把相应的数据传送回路由器,路由器就就自动转换成电脑的IP地址,传输数据给电脑。

(2)下图就是一个端口映射

image

六、DNS

1.DNS就是域名解析器,域名解析就是查询出这个域名的IP地址。

2.域名是如何进行解析?

在本省最近的地方会有一个域名解析器。

3.网页域名可以在万网上买

4.在网页中比如输入http://kaige123.com这个域名的时候,就会进行域名解析为IP地址查询出来,然后反馈给这个网页系统,系统拿到这个IP就会对服务器进行访问,网页的默认端口是80。

image

5.域名篡改?

在计算机中,有本地域名缓存,这里面的域名是每10分钟更新一次,10分钟内不更新。这样的话会对服务器减少一些压力,一些不法的服务器会篡改本地域名缓存。

6.如何清除本地解析缓存?

用ipconfig / flushdns来清楚缓存

image

七、DNS智能解析

image

解析最近的服务器,根据是什么网络,什么地区,智能的解析,分布到最近最快的服务器上。

八、中国网络运营商

image

image

联通的网络是城域网分配给每个用户,用户需要访问联通服务器的时候就要经过联通的交换机把IP地址10.5.6.4自动映射为61.5.5.4然后再到通讯服务器。电信的IP:61.5.5.123是独立的IP地址,所以可以直接连接到通讯服务器。

(1)这个时候10.5.6.4的计算机想连接到61.5.5.123的计算机可以吗?

是可以连接到,因为电信每台电脑是独立的IP也就没有一些防御的措施。

(2)那61.5.5.123计算机可以连接到10.5.6.4的计算机上吗?

这个是不行,因为电信的IP:61.5.5.123是广域网的,而计算机10.5.6.4是联通的城域网,你的计算机每次要经过映射到广域网,别人想通过联通映射好的端口直接折回信息到电脑联通是不要的,不予许通过。

九、VPN

1.VPN叫做个人专属网络。

2.VPN就是用远程的电脑来上网。

3.比如当前上网来连接Facebook是连接不上的,这个时候就需要VPN技术来连接香港的主机,用这台主机来请求当前环境中Facebook的网页,这就称之为翻墙、也是VPN技术。

image

VPN的服务器可以在万网中购买。

十、VPS个人专属服务器

VPS就是虚拟服务器。

十一、集群

1.集群里面有负载均衡器和防火墙。

2.负载均衡器:将闲置的请求分配到闲置的主机上操作。

服务器分为:1u、2u、3u U在服务器中指的是机架式服务器的厚度。

集群:让服务器集合在一起为更多的客户服务,分担客户的访问。

集群服务器的好处:是可以减少、添加服务器,流量可以转移到下一个服务器上。

image

3.防火墙:是控制来的访问是否符合防火墙的规则,不符合就拒绝来访问。防止不规则访问。

十二、TCP

1.TCP叫做可靠的传输协议,也叫套接字。

TCP对服务器进行连接,可以保持长时间连接不断开,只是需要先询问能不能连接,连接的上接下来就可以进行通讯,TCP能绝对保证数据送达到对方计算机上,如果文件有损坏,TCP就会补发。TGP需要对方的计算机也同时在线,才能传输文件。

image

2.UDP叫做不可靠的传输协议,也叫报文。

UDP就是不管对方的计算机在不在线,只管法送文件,不管你能不能收到,发送的数据有限制,但是速度比较快。

image

© 著作权归作者所有

共有 人打赏支持
凯哥学堂
粉丝 10
博文 287
码字总数 257252
作品 0
东城
程序员
Linux多线程并发服务器编程(线程池,FTP服务器)

分享网盘下载:https://pan.baidu.com/s/1gfNCcXt 密码: irfk 内容简介 本课程从最基础的进程、线程概念讲起逐步深入,通过理论与实践结合的方式,使学员快说掌握linux多线程网络编程技术,并...

人气王子333 ⋅ 2017/11/13 ⋅ 0

YoHub - 基于事件驱动的异步网络编程框架

YoHub是基于事件驱动的异步网络编程框架,语言是C++。主要灵感启发自 Kylin (百度首席架构师林士鼎先生的 baidu in-house 作品,用于百度内部异步网络编程)。 流露出代码只是零零点点,只有...

kedebug ⋅ 2014/07/27 ⋅ 0

我的网络开发之旅——socket编程

上一篇文章《TCP/IP协议分析》讲述了自己是如何和网络领域的开发扯上关系的。正如从招聘网站上抽出的几个关键词“TCP/IP, Socket, 多线程”可见,协议分析并不是网络开发的主流,通常我们所说...

yaocoder ⋅ 2014/09/21 ⋅ 0

C#网络编程系列文章(二)之Socket实现同步TCP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编...

zhujunxxxxx ⋅ 2015/03/14 ⋅ 0

操作系统,windows编程,网络,socket

首发:个人博客,更新&纠错&回复 之前关于c/s的一篇博文只记了思路没记代码,而且表达不清晰,事后看不知所云,这个习惯要改。 这十几天学了点关于操作系统、windows编程和网络,主要看的书有...

祁达方 ⋅ 2015/11/11 ⋅ 0

收藏的博客 -- 高性能Linux服务器

http://zhuanlan.51cto.com/columnlist/shenj/ --- 58沈剑 http://blog.csdn.net/analogouslove --- 范蠡&张小方 http://blog.csdn.net/column/details/15700.html --- teamtalk https://gi......

libaineu2004 ⋅ 2017/08/08 ⋅ 0

高性能网络编程(一)----accept建立连接

最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它。 编写服务器时,许多程序员习惯于使用高层次的组件、中间件(例如OO(面向对象)层层封装过的...

zhangyujsj ⋅ 2015/08/11 ⋅ 0

三分钟看Netty (2) 何为IO多路复用

粗暴的解释 从JDK 1.0开始,用户就可以通过Socket进行网络编程。在JDK 1.4后,又提供了一种全新的编程方式。 在翻阅文档的时候,相信不少人对“多路复用”这个词感到陌生和费解。 对于程序员...

moyiguke ⋅ 03/09 ⋅ 0

ACE高性能网络编程

一、课程目标 本次课程针对使用ACE工具包进行高性能网络应用开发,通过本次课程的学习,学员将具备以下能力: 二、参训要求 参加本次课程的学员须具备以下能力: 三、课程实践环境 四、课程大...

kwarph ⋅ 2013/06/14 ⋅ 0

清华大学视频课件:基于Linux的C++(自主模式)

基于Linux的C++(自主模式) 课程简介 Linux操作系统开源的特性使得其获得越来越重要的地位,而Linux系统编程也向C++程序设计者提出了更高的要求。本课程由C/C++语言的共性与特性出发,在深入...

dragonscroll ⋅ 2017/11/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CENTOS7防火墙命令记录

安装Firewall命令: yum install firewalld firewalld-config Firewall开启常见端口命令: firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-po......

cavion ⋅ 34分钟前 ⋅ 0

【C++】【STL】利用chromo来测量程序运行时间与日志时间打印精确到微秒

直接上代码吧,没啥好说的。头疼。 #include <iostream>#include <string>#include <ctime>#include <sstream>#include <iomanip>#include <thread>#include <chrono>using ......

muqiusangyang ⋅ 37分钟前 ⋅ 0

Mac环境下svn的使用

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简...

故久呵呵 ⋅ 47分钟前 ⋅ 0

破解公司回应苹果“USB限制模式”:已攻破

本周四,苹果发表声明称 iOS 中加入了一项名为“USB 限制模式”的功能,可以防止 iPhone 在连接其他设备的时候被破解,并且强调这一功能并不是针对 FBI 等执法部门,为的是保护用户数据安全。...

六库科技 ⋅ 48分钟前 ⋅ 0

MyBtais整合Spring Boot整合,TypeHandler对枚举类(enum)处理

概要 问题描述 我想用枚举类来表示用户当前状态,枚举类由 code 和 msg 组成,但我只想把 code 保存到数据库,查询处理,能知道用户当前状态,这应该怎么做呢?在 Spring 整合MyBatis 的时候...

Wenyi_Feng ⋅ 今天 ⋅ 0

synchronized与Lock的区别

# <center>王梦龙的读书笔记第一篇</center> ## <center>-synchronized与Lock的区别</centre> ###一、从使用场景来说 + synchronized 是能够注释代码块、类、方法但是它的加锁是和解锁使用一......

我不想加班 ⋅ 今天 ⋅ 0

VConsole的使用

手机端控制台打印输出,方便bug的排查。 首先需要引入vconsole.min.js 文件,然后在文件中创造实例。就能直接使用了。 var vConsole = new VConsole(); vConsole的文件地址...

大美琴 ⋅ 今天 ⋅ 0

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 今天 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 今天 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部