计算机网络

TCP/IP协议栈

可紊 提交于 2019-11-30 06:15:52
文章目录 一、参考书籍 二、必须掌握的内容 1.TCP/IP协议体系的认知 2.数据链路层 3.网络层 4.传输层 5.应用层 三、常见面试题目 1.分层的概念 2.数据链路层 3.网络层 (1)IP协议 (2)ICMP协议 四、传输层 1.UDP协议 2.TCP协议 五、应用层 1.DNS 2.http基本格式 六、参考 一、参考书籍 (1)TCP/IP详解 卷1:协议 (2)计算机网络:自顶向下方法 二、必须掌握的内容 1.TCP/IP协议体系的认知 (1)分层。一部分处于用户态,一部分处于内核态。数据链路层,网络层,传输层封装于操作系统内核态。应用层存在于操作系统的用户空间,包括DNS,FTP,HTTPs,HTTP,工作中接触较多的是应用层的部分。但其它层的原理必须理解,面试考察。 (2)层与层之间下层对上层是透明的,传输在每一层是对等的。 2.数据链路层 (1)以太网帧的格式。 (2)MTU(最大传输单元)的概念。 (3)ARP协议和RARP协议(地址协议和逆地址协议,网卡MAC地址和IP地址互查机制)(网络层和链路层的中间层)ARP报文格式,查询原理,缓存机制 3.网络层 (1)掌握IP首部格式:如16位分片标识、DF不分片标志、MF更多分片标志、13位片偏移、8位生存时间TTL、16位的首部检验和等等。 (2)掌握如何IP分片:如总长大于MTU值,画分片情况

计算机网络——物理层

做~自己de王妃 提交于 2019-11-30 02:34:32
本章重点 1、物理层的任务 2、常用的信道复用技术 3、常用的宽带接入技术,主要是ADSL和FTTx 一、物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上 传输数据比特流 ,而不是指具体的传输媒体 物理层的作用是要尽可能地 屏蔽 掉不同传输媒体和通信手段的差异 主要任务:确定与传输媒体的接口的一些特性 二、数据通信的基础知识 2.1数据通信系统的模型 一个数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方) 常用术语 数据—— 运送消息的实体 信号—— 数据的电气的或电磁的表现 模拟信号—— 代表消息的参数的取值是连续的 数字信号—— 代表消息的参数的取值是离散的 码元—— 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形 2.2有关信道的几个基本概念 信道 —— 一般用来表示向某一个方向传送信息的媒体 单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收) 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息 基带信号(即基本频带信号)—— 来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号 带通信号 —— 经过载波调制后的信号

网络编程

一曲冷凌霜 提交于 2019-11-30 00:40:35
IP地址(Internet Protocol):唯一标识网络上的每一台计算机 IP地址的组成:32位,由4个8位二进制数组成 二进制不便记忆,所以转换为十进制(最多不能超过255) IP地址 = 网络地址 + 主机地址 1>网络地址:标识计算机或网络设备所在网段 2>主机地址:标识特定主机或网络设备 二.IP地址的配置和检测 1.查看IP地址,检测网络是否畅通 1>查看本机的IP地址:ipconfig 2>测试网络是否畅通:ping 目标IP地址 三.DNS域名解析 1.网络服务器:通常指在网络环境下,具有较高计算能力,能够提供用户服务功能的计算机。 四.网络通信协议 1.网络通信协议:为了在网络中不同的计算机之间进行通信而建立的规则、标准或约定的集合 五.Socket简介 1.什么是Socket: 1>通信链路的端点就被称为“套接字”(英文Socket) 2>是提供给应用程序的接口 Socket的底层机制复杂,Java平台提供了一些简单的API,可以更简单有效的使用Socket开发而无需了解底层机制。 2.Socket分类: 1>流式套接字(Socket_STREAM):面向连接、可靠的数据传输服务 2>数据报式套接字(SOCK_DGRAM):无连接服务 3>原始式套接字(SOCK_RAW) 六.java.net包 1.java.net包 Socket ServerSocket

聊聊JAVA网络编程

江枫思渺然 提交于 2019-11-29 23:41:39
什么是网络编程 敲黑板,划重点 :网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 说白了,网络编程要涉及以下几点: 1. 串口交互 2. 网络传输协议 3. IO传输流 。 也就是说,要想掌握网络编程,就必须对这三个包非常的熟练 。 java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。 java.net包中提供了两种常见的网络协议的支持: TCP : TCP是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称TCP / IP。 UDP :UDP是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。 这两个网络协议也是常见的问题,一看一下我这篇博客总结的网络协议常考的问题以及他们两个的特点。 本文主要讲解以下两个主题。 Socket 编程 : 这是使用最广泛的网络概念,它已被解释地非常详细 URL 处理 : 这部分会在另外的篇幅里讲,点击这里更详细地了解在 Java语言中的URL处理 。 Socket编程 : 套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。 当连接建立时, 服务器会创建一个Socket对象 。

爆锤TCP/UDP

爷,独闯天下 提交于 2019-11-29 22:17:44
TCP/UDP TCP: 传输控制协议(英语:Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 UDP: 用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。 前言: 关于TCP和UDP这两个协议是面试中非常常见的问题,本文讨论以下几个问题: 什么是TCP 什么是UDP TCP和UDP的异同点 TCP和UDP的应用场景 1. TCP和UDP的异同点 1.1 相同点 UDP和TCP同属于传输层的协议 1.2 不同点 TCP面向字节流,而UDP面向数据报。 解释: TCP收发的是一堆数据,是一个数据流,而每次取多少由主机决定; 而UDP发的是数据报,客户发送多少就接收多少 TCP是面向连接的,而UDP不是面向连接的。 解释: TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。 而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。 TCP是可靠的,而UDP是不可靠的。 解释:

zz 花了一个星期,我终于把RPC框架整明白了!

耗尽温柔 提交于 2019-11-29 21:14:01
https://www.jianshu.com/p/193634cca86a RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 通信框架:MINA 和 Netty。 目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。 下面重点介绍三种: gRPC:是 Google 公布的开源软件,基于最新的 HTTP 2.0 协议,并支持常见的众多编程语言。RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。 Thrift:是 Facebook 的开源 RPC 框架,主要是一个跨语言的服务开发框架。 用户只要在其之上进行二次开发就行,应用对于底层的 RPC 通讯等都是透明的。不过这个对于用户来说需要学习特定领域语言这个特性,还是有一定成本的。 Dubbo

zz 远程通信协议

大兔子大兔子 提交于 2019-11-29 21:10:41
https://www.jianshu.com/p/61714f90c061 在分布式架构中,有一个很重要的环节,就是分布式网络中的计算机节点彼此之间需要通信。 HTTP 协议通信原理 说到通信,大家一定听过 tcp 和 udp 这两种通信协议,以及建立连接的握手过程。而 http 协议的通信是基于 tcp/ip 协议之上的一个应用层协议,应用层协议除了 http 还有哪些呢(FTP、DNS、SMTP、Telnet 等)。 涉及到网络协议,我们一定需要知道 OSI 七层网络模型和 TCP/IP 四层概念模型,OSI 七层网络模型包含(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)、TCP/IP 四层概念模型包含(应用层、传输层、网络层、数据链路层)。 image.png 请求发起过程,在 tcp/ip 四层网络模型中所做的事情 当应用程序用 TCP 传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息) image.png 客户端如何找到目标服务 在客户端发起请求的时候,我们会在数据链路层去组装目标机器的 MAC 地址,目标机器的mac 地址怎么得到呢? 这里就涉及到一个 ARP 协议,这个协议简单来说就是已知目标机器的 ip,需要获得目标机器的 mac 地址。

简述计算机网络

自古美人都是妖i 提交于 2019-11-29 19:20:18
一、c/s架构和b/s架构 c/s架构:客户端和服务器 eg:QQ、微信 c端-----------------------网络---------------------s端 c端:就是客户端 s端:有固定IP,并且稳定一直在运行,支持高并发 b/s架构:浏览器和服务器 eg:京东、天猫 其实b/s架构的本质也是c/s架构 二、网络协议 什么是网络? 网络就是网络连接介质+网络协议 网络协议 OSI七层协议:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 OSI五层协议:物理层、数据链路层、网络层、传输层、应用层 2.1 物理层 主要是010101的高低压电信号 2.2 数据链路层 通过etherner协议(以太网协议,,定义了以太网的分组方式)把物理层的电信号分组,每一组叫一个数据报/数据帧。 每一数据帧分成报头head和数据data两部分。 | 报头(18字节) | data(46-1500) | ​ 报头(固定18字节):发送者占6位,接收者占6位,数据类型占6位 mac地址 :发送者,接收者地址,就是mac地址,每个网卡都有一个唯一的mac地址,总长度为48位2进制,12位16进制数表示(前六位是厂商编号,后六位是流水线号) 广播:同一个局域网内通信,会出现广播风暴 2.3 网络层 IP:主要有IPV4和IPV6 IPV4:32位2进制,用点分十进制表示

TCP/IP协议分层详解

有些话、适合烂在心里 提交于 2019-11-29 19:08:54
TCP/IP协议分层详解 目录 TCP/IP 和 ISO/OSI TCP/IP分层模型 数据的封装与分用 其他相关概念 TCP/IP 通信传输流 负责传输的 IP 协议 正文 回到顶部 TCP/IP 和 ISO/OSI      ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。   TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。 回到顶部 TCP/IP分层模型    应用层   应用层决定了向用户提供应用服务时通信的活动。|| 应用层负责处理特定的应用程序细节。   TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域 名系统

Peer-to-Peer Sockets 工程入门

杀马特。学长 韩版系。学妹 提交于 2019-11-29 16:30:34
版权声明 :可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 作者: Brad Neuberg ; gracepig 原文地址: http://www.onjava.com/pub/a/onjava/2003/12/03/p2psockets.html 中文地址: http://www.matrix.org.cn/resource/article/43/43854_Peer-to-Peer-Sockets.html 关键词: Peer-to-Peer Sockets Peer-to-Peer (P2P)Sockets工程在JXTA peer-to-peer虚拟网络重新实现了对应于标准TCP/IP网络中的Java标准的Socket,ServerSocket,和InetAddress等类。该工程同时还引入了一些注入Jetty web server,Apache XML-RPC客户端和服务器库,Apache Jasper JSP引擎之类的流行web package。使这些服务可以运行在Peer-to-Peer Sockets 的框架下。 在这片文章结束的时候,你会理解对P2P Sockets packages的需求和以及开发它的动机,学会怎么配置P2P Socket 库使之在你的系统上能够运行,学会怎么样建立P2P的服务器和客户端Socket