달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

인터넷이란 TCP/IP protocol을 사용하는 네트워킹 방식이라고 했다. 인터넷에서 각 컴퓨터 간을 연결해주는 이더넷 카드를 통해서 어떻게 TCP/IP 메세지가 전달되는 것일까? 

인터넷에는 시스템에 상관없이 서로의 시스템이 연결될 수 있도록 해야 한다. 이것은 데이터 전송에 대해 처리해야할 일들을 계층별로 나눔으로써 캡슐화시켜 이루어지고 있다. 이렇게 하여 각 계층에서 필요한 부분만을 개발자들이 신경쓰게 되고 통신 서비스 개발시간을 줄일 수 있도록 하였다. 

이렇게 계층화된 네트웤 모델에는 

1. 네트웤 통신에서 개념적인 모델인 OSI model

2. 인터넷에서 실제 사용하는 TCP/IP

가 있다. 


1. OSI model

OSI는 각종 시스템간의 연결을 위하여 ISO에서 제안한 모델로써, OSI(Open System Interconnection Reference Model)에서 유추할 수 있듯이, 어떤 다른 종류의 시스템이라도 그것들의 아키텍처와 상관없이 서로 통신을 할 수 있도록 한다. OSI는 7개의 계층으로 되어있다.

각 계층은 데이터 유닛에 그 자신의 헤더를 붙인다. 헤더에는 제어정보, 오듀검출 코드, 주소들이 포함되어 있다. 여기서 데이터 유닛 앞에 Header을 붙이는 과정을 Encapsulation이라고 하고, 반대로 상대방이 붙인 Header를 제거하면서 상위 Layer로 데이터를 전달하는 과정을 Decapsulation이라고 한다. 

각 계층의 기능을 간단히 설명하면 다음과 같다. 

1) Physical Layer

물리적 계층, 즉 이더넷 카드와 같은 하드웨어를 말한다. 이 계층에서는 물리적 매체로 bit를 주고 받는 것을 맡고 있다. 인터페이스와 전송매체의 기계적이고 전기적인 특성과 관계가 있다. 


2) Data Link Layer

데이터 링크는 소프트웨어적이 아닌 하드웨어적으로 frame을 노드에서 다음 노드로 옮기는 것은 맡는다. 또한 물리층에서 error에 대해 신경쓰지 않도록 이 계층에서 전송매체로부터 전달된 데이터의 error를 검사한다. 

3) Network Layer

각각의 패킷들을 발신지에서 목적지까지 전송하는 경로를 배정하는 일(라우팅)을 담당한다. 이것은 하드웨어적인 것이아닌 소프트웨어적으로 처리하는 과정이다.

 

만약 두 시스템이 같은 링크에 연결되어 있다면 Network Layer는 필요없다.

4) Transport Layer

Transport Layer 도착을 원하는 시스템까지 데이타를 전송하기 위한 일을 하는 계층이다. 전체 메세지의 process-to-process 전달을 맡고 있다. 이와 달리 Network Layer는 목적지는 알지만 어떤 프로세스에 데이터를 전달해야 하는지는 모른다.

Session Layer와 Presentaion Layer의 설명은 생략.

5) Application

이 계층은 전자메일, 원격 파일접근이나 전송과 같이 네트웍을 사용하는 응용프로그램등으로 이루어 지며 사용자에게 서비스를 제공하는 것을 담당한다. 


2. TCP/IP 계층

TCP/IP 계층은 OSI 7 계층을 더 단순화 시켜서 4개의 계층으로 만들어서 사용한다. :Physical, internet, transport, application

1) Physical Layer TCP/IP는 어떤 특정한 프로토콜을 정하지 않는다. 그래서 모든 표준과 적절한 프로토콜을 지원한다.

2) internet(Network) Layer 네트웤에서 데이터를 정확히 라우팅하기 위해서 IP프로토콜을 사용한다. 

3) Transport Layer 각각의 시스템을 연결하고 TCP프로토콜을 이용하여 데이타를 전송한다. 

4) Application Layer 이 계층은 OSI 모델이서 Session, presentation, application layer를 포함한다. FTP, HTTP, DNS등 많은 프로토콜들이 정의되어 있다. 


-TCP/IP 데이터 전송 절차

그럼 실제로 TCP/IP 4계층을 이용해서 어떻게 데이타가 전송되는지 알아보도록 하자. 

WWW (World Wide Web)은 더이상 설멍이 필요없는 유명한 서비스로써, HTTP (HyperText Transfor Protocol)이라는 프로토콜을 이용한다.
일단 사용자는 Application Layer에서 Mozilla 나 IE 같은 브라우저를 사용하여서 www.joinc.co.kr 같은 URL 입력을 통해서 웹페이지를 요쳥한다.
다음으로 사용자의 요청(문자 메시지가 될것이다)은 transport Layer에서 인터넷상에서 전달되기 용이한 패킷으로 만들기 위해서 TCP 패킷으로 만들어지게 된다.
이것은 Network Layer에서 다시 인터넷 상에서 원하는 주소로 이동할수 있도록 하기 위해서 IP 패킷으로 다시 만들어 지고(IP 패킷에는 자신의 주소와, 도착해야될 상대방의 주소정보가 들어있을것이다) 이것은 Physical Layer인 이더넷 카드로 보내어져서 Internet 으로 나가게 된다.

Internet 상에서는 원하는 주소로 TCP/IP 패킷을 보내기 위한 여러가지 장치들이 존재하는데(라우터, 토큰링 같은), 이들 장치를 통해서, www.joinc.co.kr 의 이더넷카드로 TCP/IP 패킷이 전달되게 된다. 

그럼 수신지의 physical Layer에서 이더넷 카드는 TCP/IP 패킷을 바로 윗 계층인 Network Layer로 보내는데, 여기에서는 IP 패킷을 분석해서, 이 패킷이 어디에서 왔으며, 그 도착지가 어디인지를 판단하게 된다.(물론 이는 IP주소 기반으로 판단한다)
그리하여 목적지가 자신이면 이것을 다시 Transport Layer 로 보내고, TCP 프로토콜을 사용하여, 메시지가 누락된게 있으면 다시 요청하고, 순서를 재조합하는등 통신 메시지를 검사해서 이것을 다시 Application Layer 에게 보낸다
Application Layer 에서는 웹서버(IIS, Apache 같은)가 통신메시지를 HTTP 프로토콜에 준하여, 검사를 하여서 사용자가 요청한 웹페이지를 읽어들여서, Transport 계층으로 보내게 된다. 웹페이지를 브라우저까지 전송하는 과정은 위의 정반대의 과정을 순차적으로 거치게 된다.

최종적으로 웹브라우저는 웹페이지를 받아서(text) 역시 HTTP 프로토콜에 준하여, 렌더링 작업을 거친후 화면에 뿌려주게 된다.

결국 각각의 계층은 각각의 계층만을 상관하고 있음을 알수 있다. 즉 Application Layer 에 위치하는 브라우저와 webserver 는 HTTP 프로토콜에 의해서 자신의 계층끼리만 통신을 하고, Transport Layer 은 역시 TCP 프로토콜에 의해서 Transport Layer 끼리 통시을 함을 알수 있을것이다. 말그대로 계층적 구조를 가지며, 각 계층은 대응되는 상대편의 계층에 대해서만 상관한다.


-TCP/IP 주소지정

tcp/ip 프로토콜을 사용하는 인터넷에서는 4 level의 주소를 사용하고 있다. 

1) Physical Addresses

물리적 주소는 링크 주소라고도 하는데, LAN이나 WAN에 의해 정의된 노드의 주소이다. 

예를 들어, 위 그림은 물리주소 10을 가진 노드가 물리주소 87을 가진 노드에 한 프레임을 보내는 것이다. 두 노드는 한 링크에 의해 연결되어져 있다. 

대부분의 LAN은 6byte(1byte당 2hexadecial digits해서 6개)의 물리주소인 MAC address를 사용한다. 

2) Logical Address

Logical addresses는 Network layer의 주소로써 물리적 네트워크에 차이에 관계없이 통신을 하기위해 필수적이다. 

인터넷에서의 논리주소 IP address는 인터넷이 연결된 호스트을 구별할 수 있는 32-bit 주소이다.   

위 그림은 논리주소A와 물리주소10을 가진 컴퓨터가 논리주소P와 물리주소 95를 가진 컴퓨터에 한 패킷을 보내는 것이다. 물리주소는 노드와 노드를 거칠 때마다 바뀌지만 논리주소는 바뀌지 않는다.

3) port Number

TCP/IP에서 한 프로세스에 할당된 라벨을 Port number라고 한다. 한 포트넘버는 16비트이다. 다음은 송신 컴퓨터의 프로세스 a가 수신 단말의 프로세스 j에 통신을 하는 과정이다.

4) Names(specific Address)

이것은 이메일 주소나 URL과 같은 사용자 친화적인 주소이다.







Chapter 2 Network Models

Q2-1 What are the types of addresses (identifiers) used in each of the following layers?

a. application layer Names that is user friendly

b. network layer Logical Addresses(IP address in the Internet)

c. data-link layer physical Addresses(MAC address in LANs)

 

Q2-9 A host communicates with another host using the TCP/IP protocol suite. What is the unit of data sent or received at each of the following layer?

a. application layer Message

b. network layer Packet

c. data-link layer - Frame

 

P2-1 Protocol layering can be found in many aspects of out lives such as air travelling. Imagine you make a round-trip to spend some time on vacation at a resort. You need to go through some processes at your city airport before flying. You also need to go through some processes when you arrive at the resort airport. Show the protocol layering for the round trip using some layers such as baggage checking/claiming, boarding/unboarding, takeoff/landing.

P2-6 Assume a system uses five protocol layers. If the application program creates a message of 150 bytes and each layer (including the fifth and the first) adds a header of 20 bytes to the data unit, what is the efficiency (the ratio of application-layer bytes to the number of bytes transmitted) of the system?

the number of bytes transmitted = 150 + (20*5) = 250

application-layer bytes = 150

efficiency = (150/250) * 100% = 60%

 

P2-8 Match the following to one or more layers of the TCP/IP protocol suite:

a. route determination Network layer

b. connection to transmission media Presentation layer

c. providing services for the end user Application layer 





:
Posted by youjin.A