java基础班  网络编程应该提过。大学学计算机或者是通信的对这些东西肯定比较熟一些。主机到网络层是跟硬件相关的一些协议了。上层协议得依赖下层的协议。也就是说它们得联合起来共同工作才能够把数据传输出去。应用层要调用传输层的也依赖传输层的,传输层要依赖网络互联层。网络互联层最终要把数据发出去还要依赖最下面的主机到网络层,最终才会把这个数据发出去。所以四层的结构咱们要搞清楚。

要知道HTTP、TCP、IP协议分别都处于哪一层。好了,这个四层的模型咱们要搞清楚。‘


8080代表当前这台主机运行的这么一个软件,它占用的是哪一个端口。端口是不会重复的,一旦有程序占用了8080这个端口,如果你tomcat是后起来的话,那这个时候它就启动不了了。这个端口被别人占用了。


在IP的基础之上有一个TCP/UDP协议。TCP:面向连接  UDP:面向无连接的。TCP:像送快递的,第一次握手给你打电话,你说送过来吧,然后就给你送过来了。

第一次就是发了一个数据包,其实这个数据包就是想把连接打开的,这三次握手其实就是把连接创建起来。三次握手之后连接才真正创建,这个时候才可以进行数据的传输。断开的时候TCP还有四次的挥手。

第一次挥手就是我现在马上要关闭了,发送一个断开连接的请求,然后服务端给它回一句,好了,你可以断了。在第一次和第二次挥手的时候还是有数据进行传输的。然后服务端就等一下,有一个CLOSE-WAIT.等一下服务端的数据彻底的传过去之后,又给客户端发一条消息我现在彻底断开了。客户端收到服务端的消息,就可以断开了。接下来客户端也不会给服务端传数据了。所以就一共是四次通信/四次挥手。

三次握手和四次挥手保证了TCP连接相对来讲是比较安全的。HTTP协议是在TCP协议基础之上的。所以HTTP协议相对来讲也是比较靠谱的。大部分情况下,网络没有问题的情况下,很少会出现数据丢失的情况。

UDP:面向无连接,邮局。往信箱一丢,至于这个信封有没有人收到它不管。

UDP就不一样了,它直接就发。比如咱们这个飞秋,飞秋实际上用的就是UDP,这个东西你只要在线就能收到。如果不在线这个消息一样可以发,但是发完了那个人不见得会收到。这个就是TCP和UDP的区别。

TCP是协议,socket是java搞的做TCP/IP开发的一套接口/API.ServerSocket这边等待客户端的连接,客户端new一个socket传一个IP,传一个端口,就可以跟我的服务端建立一个连接。这个就是咱们要搞清楚的一个socket和TCP/IP它们之间的关系。实际上TCP/IP这一套协议实际上它不包含socket,跟socket没啥关系,在java下你要做TCP/IP相关的开发你要用到的API就是socket套接字。

12_tcp_ip相关概念的更多相关文章

  1. IDDD 实现领域驱动设计-上下文映射图及其相关概念

    上一篇:<IDDD 实现领域驱动设计-理解限界上下文> 距离上一篇有几天时间了,<实现领域驱动设计>第三章的内容都是围绕一个词-上下文映射图,我大概断断续续看了几天,总共看了两 ...

  2. [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. C#并行编程-相关概念

    菜鸟初步学习,不对的地方请大神指教,参考<C#并行编程高级教程.pdf> 目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 C# ...

  4. Java笔记1-Java相关概念和如何实现跨平台

    一.Java相关概念 1.Java语言的核心特点跨平台面向对象 2.Java的历史版本JDK1.0,JDK1.1,JDK1.2....JDK5.0,JDK6.0,JDK7.0,JDK8.0 注意:JD ...

  5. Android开发学习总结——Android开发的一些相关概念

    一.什么是3G.4G 1995年问世的第一代模拟制式手机(1G)只能进行语音通话. 1996到1997年出现的第二代GSM.CDMA等数字制式手机(2G)便增加了接收数据的功能 Ÿ 3G指的是第三代移 ...

  6. JMS相关概念

    1.相关概念 1)JMS jms即Java消息服务(Java Message Service) 是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息 ...

  7. Scrum 的相关概念

    Scrum 的相关概念 4.1   Scrum 的起源 Scrum 是一种灵活的敏捷软件开发管理过程,这个名词来源于英式橄榄球.Scrum方法由Ken Schwaber和Jeff Sutherland ...

  8. linux设备驱动归纳总结(四):2.进程调度的相关概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-65555.html linux设备驱动归纳总结(四):2.进程调度的相关概念 xxxxxxxxxxxx ...

  9. linux设备驱动归纳总结(四):1.进程管理的相关概念【转】

    本文转载自;http://blog.chinaunix.net/uid-25014876-id-64866.html linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxx ...

随机推荐

  1. 关于Swiper(概念)

    Swiper 是一款免费以及轻量级的移动设备触控滑块的js框架,使用硬件加速过渡(如果该设备支持的话). 主要使用于移动端的网站.移动web apps,native apps和hybrid apps. ...

  2. selenium之 文件上传方法

    文件上传是所有UI自动化测试都要面对的一个头疼问题 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别 ...

  3. C#基础关键字

    1:override & new public class A { public virtual void Test() { Console.WriteLine("A Test()& ...

  4. Laravel 数据库连接, 数据库名,配置文件修改

    数据库连接:在根目录(laravel5.1下面有个.env文件,如果没有则会有个.env.example然后将此文件修改成.env文件即可)打开文件:找到:DB_HOST=127.0.0.1  //连 ...

  5. iOS之简单瀑布流的实现

    iOS之简单瀑布流的实现   前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionVie ...

  6. android检测当前网络是否可用

    在android程序中运行第一步就是检测当前有无可用网络  如果没有网络可用就退出程序  if (isConnect(this)==false)           {                ...

  7. MongoDB之增删改查(一)

    本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其它关系型数据库一样,通过insert来添加数据到集合中去. db.collectionName.insert(内容) 显示数据库中 ...

  8. UVA - 1045 The Great Wall Game(二分图最佳完美匹配)

    题目大意:给出棋盘上的N个点的位置.如今问将这些点排成一行或者一列.或者对角线的最小移动步数(每一个点都仅仅能上下左右移动.一次移动一个) 解题思路:暴力+二分图最佳完美匹配 #include < ...

  9. javascript和c#的深度拷贝的一种通用方法

    很简单,序列化后反序列化...

  10. cgic 中文文档

    CGIC英文文档地址:https://boutell.com/cgic/ cgic是用c写cgi程序的一个很小的库,所以英文文档也很少,为了便于日后复习翻看,心血来潮,翻译了一遍. 1. 什么是cgi ...