网络编程

来源:互联网 发布:淘宝店铺如何设置网址 编辑:程序博客网 时间:2024/06/03 20:09

参考资料:
http://blog.csdn.net/replace_/article/details/74518165?locationNum=7&fps=1
http://blog.csdn.net/u011400289/article/details/23936837?locationNum=3&fps=1
http://www.cnblogs.com/duanxz/p/5127561.html

网络通信的三要素:

  • IP
  • 端口
  • 通信协议

详解:

  • IP地址和域名

    现在使用的是IPv4,IP地址是分配给网卡的,每个网卡有一个唯一的IP地址,如果一个计算机有多个网卡,则该台计算机则拥有多个不同的IP地址,在同一个网络内部,IP地址不能相同。
    由于IP地址不方便记忆,所以有专门创造了域名(Domain Name)的概念,其实就是给IP取一个字符的名字,如果把IP地址类比成身份证号的话,那么域名就是你的姓名。
    在网络中只能使用IP地址进行数据传输,所以在传输以前,需要把域名转换为IP,这个由称作DNS的服务器专门来完成。

  • 端口

    为了在一台设备上可以运行多个程序,人为的设计了端口(Port)的概念,类似的例子是公司内部的分机号码。
    使用端口号,可以找到一台设备上唯一的一个程序。
    IP地址带你到某台主机,端口号带你到主机上的某个程序

  • 数据传输方式

    TCP/只需要建立一次连接,就可以多次传输数据。优点是稳定可靠,缺点是建立连接和维持连接的代价高,传输速度不快。
    UDP 用户数据报协议方式,该传输方式不建立稳定的连接。开销小,传输速度快,但是易丢包。

  • 协议

    指的是传输数据的格式
    因为大家在网络中需要传输各种各样的信息,在程序中获得到的都是一组数值,如何阅读这些数值呢,就需要提前规定好这组数据的格式,在客户端按照该格式生成发送数据,服务器端按照该格式阅读该数据,然后在按照一定的格式生成数据反馈给客户端,客户端再按照该格式阅读数据。现实中类似的例子就是电报编码,每个数字都是用特定的数据表达。

  • Http协议与TCP/IP的关系

    这里写图片描述

    TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据

    我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议

    WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。> 术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
    你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。

    • 小结

    网络编程就是使用IP地址,或域名,和端口连接到另一台计算机上对应的程序,按照规定的协议(数据格式)来交换数据。
    实际编程中建立连接和发送、接收数据在语言级已经实现,做的更多的工作是设计协议,以及编写生成和解析数据的代码罢了,然后把数据转换成逻辑的结构显示或控制逻辑即可。

原创粉丝点击