zoukankan      html  css  js  c++  java
  • 网络基础知识

    为什么要写网络?

     

    我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识。说到这呢,有人问了。“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?”

    原因是这样的。作为网站开发人员,你所开发的软件产品最终是要在网络上运行的。这就像一个生产商,要生产供给东北地区的产品,而生产商对东北的天气、地理、人文毫无了解。生产商的产品肯定是不可用的,或者低端的!产品质量不好,那是自然的。产品质量好,那算你点儿高。那么作为ASP.NET开发人员,如果一点不懂http协议、不晓得Ajax、甚至根本不了解JavaScript,效果也是一样的。

    总之,丰富的知识储备,会为你的软件产品带来更多的品质保障。

    当然,我们要了解的主要是HTTP协议,对于这篇文章整理的内容,只做了解即可。目的是对整个知识体系有个大致的概念。算了,坦率的讲吧。本篇文章意义不大,写它的根本原因是我想通过这样一种方式,来回忆自己的网络知识。毕竟曾经考过一个劳什子的网络工程师(等考得那个,我知道没啥用,但刚上大学的时候,以为很厉害。当时费了点心思,全当回忆大学生活了)。当然这里只是概要式的梳理。

     

    关于体系结构

    1.OSI、TCP/IP、与五层体系结构 

    clipboard

    说道网络的体系结构,总共有两个经典的划分方式,分别是OSI七层 和 TCP/IP四层。

    1)OSI

         OSI的七层协议体系结构、清晰,完整。       但复杂度高,又不实用。

    2)TCP/IP

          相比的OSI七层的复杂,TCP/IP的四层结构 得到了广泛的应用。

         但是从实际角度看,TCP/IP在实际应用中仅使用了上三层。

    3)五层体系结构。

       TCP/IP 最下层网络接口层,没有什么特别新的具体内容,跟一般的通信链路没有多大差别。 

    所以在学习的时候采用一种中庸的做法,就是把TCP/IP体系、和OSI体系结合

    形成一个、从物理层、数据链路层、网际层、运输层到应用层的五层体系结构。

    2.对于五层协议、每层的描述

    1)物理层

          定义了通信设备的 机械、电气、功能归程特性。(当年就是这么背的,我理解的呢就是这样,“方形的插头、插不进去圆形的口。就是定义这样一个标准吗”)

         设备: 集线器  (组成一个碰撞域)

    2)数据链路层

       建立、维护和释放网络实体间的数据链路,这种数据链路对网络变现为一条无误差的信道。(MAC媒介访问层、LLC逻辑链路层)

       主要特性记住三点》  1. 封装成帧

                                        2.透明传输

                                        3.差错检测

         设备:网桥、有缓存,接受MAC帧。

    3)网络层:

        属于通信子网,通过网络连接交换传输层实体放出的数据。它解决的是路由选择,网络拥塞,异构网络互联的问题。(发送的是报文)

         IP       网际协议

         ARP   地址解析协议

         RARP 反向地址解析协议

         ICMP 网际控制报文协议

         IGMP 网际组管理协议

    4)传输层

         实现发送端和接收端,端到端的数据分组传送,负责保证实现数据包无差错、无丢失和无冗余的传输。 (服务的访问点为端口)

         TCP   (传输控制协议) 可靠、面向连接、有应答机制

         UDP  (用户数据报协议)不可靠、无连接、无应答机制

    5)应用层

          虽然我们是程序开发人员,但是上面基层的协议说的什么呢?实话说跟我们联系不大。到了应用层才跟我们得工作息息相关。

        HTTP   超文本传输协议 这个才是我们需要懂的。

         FTP      文件传输协议

         DHCP  动态主机配置协议

         NFS      网络文件系统

         Telnet  远程登录协议

         DNS     域名系统

         SNMP  简单网络管理协议

     

     

    需要了解的几个概念

    1.URL

        这个东西的学名加:统一资源定位符。他表示找到互联网中一个资源的资源位置、访问资源的方法。

         通常的结构是这样的

         《协议》://《主机》:《端口》/《路径》?请求参数

            http下就是这样

            http://《主机》:《端口》/《路径》

     

    2.HTTP协议

    • 这货的学名叫:超文本传输协议。
      顾名思义,http协议定义了浏览器如何向网络服务器请求文档,以及服务器怎样把文档传送给浏览器。
    • http协议是请求、响应式的。没有请求就木有响应。
    • http是面向文本的,所以报文中的每一个字段都是一些ASCII码串,所以各个字段的长度不确定。
    • http报文总共就有两类,请求报文、响应报文。
      1)请求报文 
       
      2)响应报文
    • 无论是请求报文,还是响应报文,都可以划分为三部分。
      1)开始行
      2)首部行
         我的习惯是把上面的的两部分叫,报文头。下面这部分叫报文体。(也不知掉对不对)
      3)实际主体
    • 具体细节,下篇博文里专写一个关于HTTP协议的浅显研究。
     
     
  • 相关阅读:
    C# Thread Lambda
    C#中Invoke的用法
    C#抽象类和抽象方法
    SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用
    改变自己的128种方法
    小技巧
    Linux学习第一章作业.zxs
    Linux学习第二、三章作业.zxs
    Linux 系统管理 04—账号管理
    Mysql中的in和find_in_set的区别?
  • 原文地址:https://www.cnblogs.com/mcad/p/4340607.html
Copyright © 2011-2022 走看看