java学习笔记 --- 网络编程(网络的基础知识)
1、网络模型:
|--OSI(open stystem Interconnection开放式系统互连)
|--特点:
是一种异构系统互连的分层结构;提供了控制互连系统交互规则的标准骨架;定义一种抽象结构,而并非具体实现的描述;不同系统中相同层的实体为同等层实体;同等层实体之间通信由该层的协议管理;相信层间的接口定义了原语操作和低层向上层提供的服务;所提供的公共服务是面向连接的或无连接的数据服务;直接的数据传送仅在最低层实现;每层完成所定义的功能,修改本层的功能并不影响其他层。
|--七层结构:
物理层: 提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。
数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。
网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。
传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。TCP(传输控制协议)传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据,UDP(用户数据报协议,于TCP特性恰恰相反)用于传输可靠性要求 不高,数据量小的数据,如QQ聊天数据就是通过这种方式进行传输。
会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。
表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。
|--TCP/IP:
|--TCP/IP的分层模型
Internet采用了TCP/IP协议,如同OSI参考模型,TCP/IP也是一种分层模型。
它是基于硬件层次上的四个概念性层次构成,即网络接口层、IP层、传输层、应用层。
网络接口层:也称数据链路层,这是TCP/IP最底层。功能:负责接收IP数据报并发送至选定的网络。
IP层:IP层处理机器之间的通信。功能:它接收来自传输层的请求,将带有目的地址的分组发送出去。将分组封装到数据报中,填入数据报头,使用路由算法以决定是直接将数据报传送 至目的主机还是传给路由器,然后把数据报送至相应的网络接口来传送。
传输层:是提供应用层之间的通信,即端到端的通信。功能:管理信息流,提供可靠的传输服务,以确保数据无差错的地按序到达。
2、TCP/IP模型的分界线
协议地址分界线:以区分高层和低层的寻址,高层寻址使用IP地址,低层寻址使用物理地址。应用程序IP层之上的协议软件只使用IP地址,而网络接口层处理物理地址。
2、网络通信要素
|--IP地址:网络中设备的标示
127.0.0.1本地回环地址 主机名:localhost
IP地址不能冲突,但是可以重复,在不同的网络中的是可以重复的。
|--端口号:用于表示进程的逻辑地址,不同进程的标示,有效端口:0~65535其中0~1024系统使用或者保留端口,
|--物理端口:即我们看的见的端口,比如网卡端口
|--逻辑端口:就是些数字标示。
|--传输协议:
|--TCP:
|--特点:
1、建立连接,形成传输数据的通道
2、在连接中进行大数据量传输
3、通过三次握手完成连接,是可靠协议,一旦连接断开数据就不存在了
4、必须建立连接、效率会稍低
|--UDP:
|--特点:
1、将数据以及源和目的封装成数据包,不需要建立连接
2、每个数据报的大小在限制的64K内
3、因无连接,是不可靠的协议
4、不要建立连接 ,速度快。
2、IP地址对象:
InetAddress:互联网协议地址
getLocalHost();返回本地主机
getHostName();获取主机名
getByName();根据主机名或者IP地址的字符串表示得到IP地址对象
getAllByName();
地址解析:直接通过IP地址可以访问新浪的主机,同时也可以通过主机名去访问。
百度校招笔试题:URL有哪几个部分组成?协议、主机、端口、文件
DNS域名解析:客户端输入主机名去查找DNS服务器,查找对应的IP地址,然后返回它客户端在根据IP地址指向所要去访问的主机。
扩展:怎么去进制掉上网过程中弹出的小广告
去配置文件中一下面的格式配置即可
127.0.0.1 www.XXXX.com
eg:127.0.0.1 www.sina.com表示禁止不能上新浪网.
/*InetAddress的成员方法:
* public static InetAddress getByName(String host):根据主机名或者IP地址的字符串表示得到IP地址对象
*/
public class InetAddressDemo {
public static void main(String[] args) throws UnknownHostException {
// public static InetAddress getByName(String host)
// InetAddress address = InetAddress.getByName("sanxing");
// InetAddress address = InetAddress.getByName("192.168.12.92");
InetAddress address = InetAddress.getByName("192.168.12.63"); // 获取两个东西:主机名,IP地址
// public String getHostName()
String name = address.getHostName();
// public String getHostAddress()
String ip = address.getHostAddress();
System.out.println(name + "---" + ip);
}
}
java学习笔记 --- 网络编程(网络的基础知识)的更多相关文章
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- MOGRE学习笔记(2) - MOGRE基础知识总结
前一篇配置了MOGRE的运行环境,这里记录一些MOGRE基础知识,仅仅是最基础的一些东西.由于本人接触ogre的时间比较短,对于很多知识都是一知半解,所以理解起来不免会有一些错误,本人也希望自己在对o ...
- Java学习笔记53(网络编程:TCP协议案例)
简易的案例 客户端: package demo; import java.io.IOException; import java.io.InputStream; import java.io.Outp ...
- Java学习笔记52(网络编程:UDP协议案例)
InetAddress类: 表示互联网中的IP地址,示例: package demo; import java.net.InetAddress; import java.net.UnknownHost ...
- socket网络编程的一些基础知识
源地址:http://blog.csdn.net/roger_77/article/details/1453049 目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理 ...
- java学习笔记3--类与对象的基础
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note3.html,转载请注明源地址. 1.面向对象的程序设计方法概述 面向对象的程序设计 与 ...
- Java学习笔记(二)UML基础
用例图:代表系统的一个功能模块,仅仅是系统功能的描述.用例图包括:用例.角色.角色和用例之间的关系以及系统内用例之间的关系. 类图:表示系统中包含哪些实体,各实体之间如何关联. 类图除了表示实体内部结 ...
- WCF揭秘学习笔记(1):基础知识
最近找工作,面试时经常被问懂不懂WCF.不少招聘高级.NET工程师的要求上都 写着有WCF开发经验的优先考虑.我对于WCF仅仅是通过看一些教学视频这种山寨学习法了解一些.现在要下决心好好学习一下WCF ...
- apue学习笔记(第一章UNIX基础知识)
总所周知,UNIX环境高级编程是一本很经典的书,之前我粗略的看了一遍,感觉理解得不够深入. 听说写博客可以提高自己的水平,因此趁着这个机会我想把它重新看一遍,并把每一章的笔记写在博客里面. 我学习的时 ...
- Scala学习笔记(三):基础知识
有了可运行的环境,就需要写一些简单的语句来认识一下Scala,本文没有写那么详细,只是为了方便查看.唤起回忆 (1)变量的定义方法 Scala有两种变量 var val 注意:在解释器中,可以用一个之 ...
随机推荐
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() .根据首字母对应VERBOSE,DEBUG,INFO, WA ...
- requirejs源码分析: requirejs 方法–2. context.require(deps, callback, errback);
上一篇 requirejs源码分析: requirejs 方法–1. 主入口 中的return context.require(deps, callback, errback); 调用的是make ...
- openstack ocata版(脚本)计算节点安装
一.初始化环境: 1.安装软件包: yum -y install centos-release-openstack-ocata yum -y upgrade yum -y install python ...
- asp.net,缓存Cache
缓存Cache: >直接使用Cache["content"],缓存与Session不同,所有用户都可以共享.永不过期,由服务器自己维护,当内存不够时,会将老的缓存释放掉. & ...
- Linux Shell编程 cut、print命令
cut命令:查找符合条件的列 cut 命令是在文件中提取符合条件的列,虽然 cut 命令用于提取符合条件的列,但是也要一行一行地进行数据提取.也就是说,先要读取文本的第一行数据,在此行中判断是否有符 ...
- 【HackerRank】Ice Cream Parlor
Sunny and Johnny together have M dollars which they intend to use at the ice cream parlour. Among N ...
- 根据Django后台的ajax大全
一.什么是ajax 1.1 什么是JSON? AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语 ...
- INSPIRED启示录 读书笔记 - 第18章 重新定义产品说明文档
理想的产品说明文档 1.产品说明文档应该完整地描述用户体验——不只是用户需求,还包括交互设计和视觉设计.用户需求和用户体验是密不可分的 2.产品说明文档必须准确地描述软件的行为 3.产品说明文档必须以 ...
- INSPIRED启示录 读书笔记 - 第7章 管理产品经理
产品总监的关键职责 1.组建优秀的产品经理团队 如果产品经理不称职,只能退而求其次,请其他团队成员(比如主程序员)越俎代庖 新产品经理必须经过约三个月刻苦学习才能开始管理产品,管理者应该为新人创造学习 ...
- constexpr与指针
一. 常量表达式:是指值不会改变并且在编译过程就能得到的计算结果的表达式. 定义常量表达式变量: constexpr 变量类型 变量名: 例如: constexpr int mf=20://///20 ...