走进计算机网络编程

一、 实体层

"实体层",它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。

二、 链路层

  1. 单纯的0和1没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义? 这就是"链接层"的功能,它在"实体层"的上方,确定了0和1的分组方式

  2. 以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示

  3. 以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据
  4. 太网采用了一种很"原始"的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。它们读取这个包的"标头",找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包
  5. 早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做"以太网"(Ethernet)的协议,占据了主导地位。

三、网络层

  1. 如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难。
  2. 联网是无数子网络共同组成的一个巨型网络,很像想象上海和洛杉矶的电脑会在同一个子网络,这几乎是不可能的。
  3. "网络层"的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。
  4. 网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。
  5. 如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。("路由"的意思,就是指如何向不同的子网络分发数据包)
  6. 规定网络地址的协议,叫做IP协议。广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成
  7. 联网上的每一台计算机,都会分配到一个IP地址。这个地址分成两个部分,前一部分代表网络,后一部分代表主机。比如,IP地址172.16.254.1,这是一个32位的地址,假定它的网络部分是前24位(172.16.254),那么主机部分就是后8位(最后的那个1)。处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,也就是说172.16.254.2应该与172.16.254.1处在同一个子网络。
  8. 所谓"子网掩码",就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,结果都是172.16.254.0,因此它们在同一个子网络。
  9. IP数据包也分为"标头"和"数据"两个部分,标头"部分主要包括版本、长度、IP地址等信息,"数据"部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。
  10. mac地址:通过地址解析协议(ARP)获得,一个子网中直接通过ARP,非一个子网,交给网关处理

四、传输层

  1. 需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做"端口"(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据
  2. 传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。
  3. Unix系统就把主机+端口,叫做"套接字"(socket),基于它进行网络应用程序的开发
  4. UDP数据包,也是由"标头"和"数据"两部分组成。标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分
  5. 了解决这个问题,提高网络可靠性,TCP协议就诞生了,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

    五、应用层

    "应用层"的作用,就是规定应用程序的数据格式。 举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"

  6. 正则表达式应用
  7. 常用的规则链接:https://www.cnblogs.com/fozero/p/7868687.html
  8. 正则表达式:正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

      需求:检查一个字符串 是全数字组成  是/不是

      1.遍历

        转换为char[]

        2.判断(如何判断)

        类型的对比 (转换为数字,如果有字母-报错-捕获异常)

       

     需求:验证邮箱的格式?

        qq号码@qq.com

      163 雅虎 新浪

     1.正则的规则

      ^[0-9]*$:验证数字

     ^[\u4e00-\u9fa5]{0,}$:验证全是汉字

     

     2.java代码中如何使用

      有专门的一个类 Pattern

      public boolean matches(String regex)

      regex - 用来匹配此字符串的正则表达式

    返回:

    当且仅当此字符串匹配给定的正则表达式时,返回 true

     

        3.使用场景

    一般用于注册的信息(密码,账号格式,邮箱,手机号,身份证号等)验证

  9. 计算机网络的应用场景(了解)
      1. 网购(。。。)   看直播    网络游戏  看新闻  网络聊天
      2. 网络在改变生活
  10. 3.网络编程相关术语(了解)

    iP:概念:所谓IP地址就是给每个连接在互联网上的主机分配的一个32位地址;IP是互联网上的每一台计算机都有得一个唯一表示自己的标记。

    端口:如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)

    简单的说:一个电脑上的应用程序都绑定了一个对应的编号(端口),通过IP可以定位到指定的主机(电脑),再加上端口就可以定位到指定的程序了。

     

    URL:URL(Uniform Resource Locator)统一资源定位符,可以直接使用此类找到互联网上的资源如一个简单的网页。

    一般由:协议名,资源所在主机,端口,资源名等部分组成;

    如:http://itsource.cn:80/class_info/java_jichu.html

     

    URLEncoder与URLDecoder的使用场景

     

  11. TCP协议概念:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于 字节流 的运输层(Transport layer)通信协议;当客户和服务器彼此交互数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
  12. UDP协议概念: 用户数据报协议,是一个简单的面向数据报的运输层协议,UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证他们能到达目的。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,并且没有超时重发机制,故而传输速度很快;

  13. TCP的所有操作必须建立可靠的连接,这样会浪费很大的性能,为此UDP这种不可靠的连接出现。

    1. UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket完成发送操作,也能够实现在两个终端之间传输数据。
  14. TCP与UDP的区别
  15. 基于连接(TCP)与无连接(UDP) ;
  16. 对系统资源的要求(TCP较多,UDP少) ;
  17. UDP程序结构较简单 ;
  18. 流模式(TCP)与数据报模式(UDP) ;
  19. TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;
  20. 与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。

    相对于TCP协议,UDP协议的另外一个不同之处在于如何接收突发性的多个数据报。不同于TCP,UDP并不能确保数据的发送和接收顺序。

    UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。  

    TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。

     

转载于:https://my.oschina.net/u/4083666/blog/3029890

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值