Linux的网络简介

1、TCP/IP协议簇  (通俗的解释就是为了网路传输指定的一种标准),它将网络划分为四层:应用层 、传输层、互联层 、网络接口层 。

基础层是网络接口层(说白了就是把帧格式的数据放在网络上,或者在网络上把帧格式的数据取下来)

接下来是互联层(把网络上的数据包封装成Internet数据包,同样的需要遵守四个协议,网络协议【IP】地址解析协议【ARP】网络控制消息协议【ICMP】互联组管理协议【IGMP】)

接下来就是传输层(传输协议就是建立主机之间的通信会话,选择的协议根据数据传输的方式而定  传输控制协议【TCP】适用于一次传输大批量的数据 用户数据包协议【UDP】适用于一次传输小批量的数据)

接下里就是应用层(说白了就是应用程序通过这一层来访问网络  常见的协议  提高远程登录协议【TELNET】 文件传输服务【FTP】 电子邮件【SMTP】 域名解析【DNS】 超文本传输协议【HTTP】)

IP协议和TCP协议

我依据自己的理解给大家简单的介绍一下IP协议,IP协议是最重要的底层网际协议,计算机需要通过所有人都遵守的IP协议加入到Internet中,这样所有加入Internet中的计算机就会被放在同一个局域网络中,这样所有利用IP软件,遵守IP协议的计算机就可以实现通信了。

虽然每一台计算机都可以根据Ip协议进行通信,但是不能保证在通信过程中的数据分组,会导致数据紊乱,那么两个计算机想要通信就必须同时遵守同一个TCP协议,TCP协议为两个用户提供了可靠的通信服务,使他们 能够适应网络中的各种变化,即使网络发生阻塞TCP也能够保证网络的可靠性。

IPV4地址基础

A类IP地址 
No.1 网络号字段占1字节,主机号字段占3字节。 
No.2 第1字节的前一位固为0。 
No.3 网络号为127的IP地址保留作为环回地址。(主机用于向自身发送通信的一个特殊地址,即同一台设备上运行的 TCP/IP应用程序和服务之间相互通信提供了一条捷径。) 
综合1.2.3点及特殊地址需求可得A类IP地址范围: 
始:0000 0001.0000 0000.0000 0000.0000 0001 
终:0111 1111.1111 1111.1111 1111.1111 1110 
1.0.0.1  ~  126.255.255.254 
相关计算: 
No.1 网络号为8bit,且网络号第1字节的前一位固为0,排除网络号全为0,1的情况,故可分配的网络号为2^7-2。 
No.2 主机号为24bit,主机号排除全为0,1的情况,故每个网络可达最大主机数为2^24-2。 
B类IP地址 
No.1 网络号字段占2字节,主机号占2字节。 
No.2 第1字节的前两位固为10。 
综合1.2点及特殊地址需求可得B类IP地址范围: 
始:1000 0000.0000 0001.0000 0000.0000 0001 
终:10111 1111.1111 1111.1111 1111.1111 1110 
128.1.0.1  ~  191.255.255.254 
相关计算: 
No.1 网络号为16bit,且网络号第1字节的前一位固为10,排除网络号全为0,1的情况,故可分配的网络号为2^14-1。 
No.2 主机号为16bit,主机号排除全为0,1的情况,故每个网络可达最大主机数为2^16-2。 
C类IP地址 
No.1 网络号字段占3字节,主机号占1字节。 
No.2 第1字节的前两位固为110。 
综合1.2点及特殊地址需求可得B类IP地址范围: 
始:1100 0000.0000 0000.0000 0001.0000 0001 
终:11011 1111.1111 1111.1111 1111.1111 1110 
192.0.1.1  ~  223.255.255.254 
相关计算: 
No.1 网络号为24bit,且网络号第1字节的前一位固为110,排除网络号全为0,1的情况,故可分配的网络号为2^24-1。 
No.2 主机号为8bit,主机号排除全为0,1的情况,故每个网络可达最大主机数为2^8-2。 
关于私有地址 
上面提到IP地址在全世界范围内唯一,看到这句话你可能有这样的疑问,像192.168.0.1这样的地址在许多地方都能看到,并不唯一,这是为何?Internet管理委员会规定如下地址段为私有地址,私有地址可以自己组网时用,但不能在Internet网上用,Internet网没有这些地址的路由,有这些地址的计算机要上网必须转换成为合法的IP地址,也称为公网地址。 
下面是A、B、C类网络中的私有地址段,自己组网时就可以用这些地址了。 
A:10.0.0.0 ~ 10.255.255.255 
B:172.16.0.0 ~ 172.131.255.255 
C:192.168.0.0 ~ 192.168.255.255 
关于环回地址 
No.1 Ping 127.0.0.1,如果反馈信息失败,说明IP协议有错,必须重新安装TCP/IP协议。如果成功Ping本机IP地址,但反馈信息失败,说明你的网卡不能和IP协议栈进行通信。 
No.2 在本机上建立的Sql Server、IIS等,可用127.0.0.1这个地址访问。

子网掩码

每一台主机都需要一个子网屏蔽号用来区分网络号和主机号,子网掩码中所有的对应的网络号都被置为1,对应的主机号都被置为0,在使用的时候当网络没有被划分出子网时,可以使用缺省的子网掩码,反之则需要自定义的子网掩码。

Linux下的ARP管理

MAC是所有网络活动的基础,而网上的所有主机通信都需要IP地址,ARP协议就是IP和MAC地址之间的对应关系,在linux启动之后输入  arp  之后回车 显示的是最近解析的IP和MAC地址的对应记录,其中

Address为 ip地址-----HWtype为网络的主机类型-----HWaddress是MAC地址-----Flags表示的是记录状态-----Iface主机运行arp命令的网卡编号

TCP协议基础

在网络层IP之上的是传输层 ,在传输层常见的是TCP封包

不想敲字了,就扫描了两个图片。

Linux网络简介的更多相关文章

  1. linux 网络虚拟化: network namespace 简介

    linux 网络虚拟化: network namespace 简介 network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息.不管是虚拟机还是 ...

  2. Linux 网络 I/O 模型简介(图文)(转载)

    Linux 网络 I/O 模型简介(图文)(转载) 转载:http://blog.csdn.net/anxpp/article/details/51503329 1.介绍 Linux 的内核将所有外部 ...

  3. Linux网络编程:原始套接字简介

    Linux网络编程:原始套接字编程 一.原始套接字用途 通常情况下程序员接所接触到的套接字(Socket)为两类: 流式套接字(SOCK_STREAM):一种面向连接的Socket,针对于面向连接的T ...

  4. 【linux草鞋应用编程系列】_5_ Linux网络编程

    一.网络通信简介   第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章.   二.linux网络通信     在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网 ...

  5. linux 文件系统简介

    linux文件系统简介   文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基 ...

  6. linux网络虚拟化

    图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN http://smilejay.com/2012/08/qemu-kvm-networking-m ...

  7. 转:Linux网络IO并行化技术概览

    转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...

  8. 深入理解linux网络技术内幕读书笔记(三)--用户空间与内核的接口

    Table of Contents 1 概论 1.1 procfs (/proc 文件系统) 1.1.1 编程接口 1.2 sysctl (/proc/sys目录) 1.2.1 编程接口 1.3 sy ...

  9. Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

    原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...

随机推荐

  1. AngularJS进阶(十五)Cookie 'data' possibly not set or overflowed because it was too large

    Cookie 'data' possibly not set or overflowed because it was too large (5287 > 4096 bytes)! 注:请点击此 ...

  2. Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示

    ps:将某个时间点的进程运行情况撷取下来 [root@www ~]# ps aux <==观察系统所有的进程数据 [root@www ~]# ps -lA <==也是能够观察所有系统的数据 ...

  3. OpenGL OpenCV根据视差图重建三维信息

    代码如下: // disparity_to_3d_reconstruction.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" //Huan ...

  4. 如何让minicom换行

    以前在使用minicom验证裸板代码的时候,经常会遇到以下这个问题: 通常一直打数据往后打就只能打一行,然后就不能换行了,遇到这个问题如何解决? 看到屏幕下方提示:CTRL-A  Z  for hel ...

  5. 面试之路(10)-BAT面试之java实现单链表的插入和删除

    链表的结构: 链表在空间是不连续的,包括: 数据域(用于存储数据) 指针域(用于存储下一个node的指针) 单项链表的代码实现: 节点类 构造函数 数据域的get,set方法 指针域的get,set方 ...

  6. LeetCode之旅(13)-Valid Anagram

    题目介绍: Given two strings s and t, write a function to determine if t is an anagram of s. For example, ...

  7. 如何在linux上构建objective-c程序

    swfit目前还是os x独占,以后会不会扩展到其他系统还未可知,但objective-c并不只存在于os x,在linux下gcc和clang都支持obj-c哦,下面简单把如何在ubuntu上构建o ...

  8. 基于event 实现的线程安全的优先队列(python实现)

    event 事件是个很不错的线程同步,以及线程通信的机制,在python的许多源代码中都基于event实现了很多的线程安全,支持并发,线程通信的库 对于优先队列的堆实现,请看<python下实现 ...

  9. 全局程序集缓存GAC

    GAC中的所有的Assembly都会存放在系统目录"%winroot%\assembly下面.放在系统目录下的好处之一是可以让系统管理员通过用户权限来控制Assembly的访问. 目录:C: ...

  10. python单线程,多线程和协程速度对比

    在某些应用场景下,想要提高python的并发能力,可以使用多线程,或者协程.比如网络爬虫,数据库操作等一些IO密集型的操作.下面对比python单线程,多线程和协程在网络爬虫场景下的速度. 一,单线程 ...