상세 컨텐츠

본문 제목

[Network Models]

IT Convergence Engineering/Data Communication

by Soo_buglosschestnut 2020. 4. 5. 21:09

본문

Network Models



Protocol Layering(프로토콜 계층화)


프로토콜(Protocol) : 통신을 효과적으로 하기 위한 약속(규칙)

Figure 2.1에서 보면 Ann과 Maria과 소통을 하려면 서로 공통된 규칙, 프로토콜이 필요하게 된다.  같은 언어를 사용하고 같은 장소에서 communication을 한다는 등의 조건이 필요하게 된다.

Figure 2.2

Figure 2.2에서, Ann과 Maria가 우편으로 communication 하려고 한다. 정보가 유출되지 않게 암호화(Encrypt), 복호화(Decrypt)한다. (Layer 3이 상위계층 Layer 1이 하위계층이다.)

 

Maria가 sender이고 Ann이 Receiver라 가정하면,

  1. Maria가 Layer3를 통해 Talk(or Write).
  2. Layer 2를 통해 Encrypt과정을 거치고, Layer 1을 통해 mail을 send 하게 된다.
  3. 그러면 Ann은 Layer1을 통해 mail을 receive 하고, Layer 2를 통해 Decrypt.
  4. Layer 3을 통해 Ann은 Listen(or Read).

→ Layer3~Layer1으로 세분화시킨 이유는 수정의 용이성 때문( 만약 전달이 잘못되면 무슨 Layer에서 작동 오류가 났는지 쉽게 파악 가능해서)

이런 식으로 서로에게 서비스

 

Protocol Layering은 서로 독립적인 계층화 / 모듈화가 가능

 

더보기

모듈(Module)화 : 어떤 큰 문제를 해결하려고 할 때, 규모가 큰 것을 여러 개로 나눈 조각

https://terms.naver.com/entry.nhn?docId=3532949&cid=58528&categoryId=58528

 

모듈화

소프트웨어 개발에서 모듈이라는 용어를 많이 사용한다. 하지만 정확한 의미를 모르고 사용하는 경우도 종종 있다. 어떤 경우에는 큰 단위를 모듈이라 하고, 어떤 경우에는 작은 단위를 모듈이라고도 한다. 이것을 보면 모듈이 크기를 의미하지는 않는다. 모듈에 관해서는 6장 '하위 설계'에서 다시 자세히 다루므로 여기서는 간단히 살펴보자. 어떤 큰 문제를 해결하려고 할 때 그대로 놓고 해결하는 것은 매우 어려운 일이다. 따라서 일반적으로 큰 문제를 작은 단위로 쪼

terms.naver.com

계층화: https://terms.naver.com/entry.nhn?docId=827311&cid=50376&categoryId=50376

 

계층화

그래픽 데이터의 부분 집합들을 하나의 그림과 연관시키는 논리적 개념. 예를 들어, 건물의 평면도를 그릴 때 각 층마다의 평면도를 한 화면에서 동시에 그려서 나타내는 것은 어려우므로, 각 층을 독립적으로 그리고 마지막에 모든 층을 동시에 통합하여 나타내면 전체적인 건물의 형상을 알 수 있게 된다.

terms.naver.com

(내 생각에는, 계층화를 통해서 전체적인 형상을 나눠 놓고 그 계층화 안에서 여러 조각을 나누는 것을 모듈화라고 할 수 있을 거 같다.)


TCP/IP Protocol Suite


TCP/IP : 인터넷 사용을 위한 프로토콜 

 TCP/IP Protocol suite는 총 5개의 layer로 구성!!!

  • Physical Layer
  • Data Link Layer
  • Network Layer
  • Transport Layer
  • Application Layer

TCP/IP 모델 five layers 
이런식으로 구성되어있다... (설명은 뒤쪽에서...)

 

각각의 layer들은 end-to-end, hop-to-hop으로 구분 되어진다.

Figure 2.6

Figure 2.6을 보면 Application, Transport, Network가 end-to-end이다. 여기서 end-to-end를 endsystem에서 endsystem까지 라고 보면 될 거 같다. 이 세 가지 layer는 중간에 끊임없이 source에서 destination까지 간다.

 

But, Data link, Physical layer는 중간의 router에서 끊겼다가 다시 router에서 생성된 것이 destination까지 간다. 그러므로 hop-to-hop이다. hop-to-hop은 endsystem에서 hop(router)까지라고 생각하면 된다. 

Figure2.7 (각 layer의 전송 단위를 말해주고 있다.!!!)

Application Layer messages (names EX>mail ID)
Transport Layer segments or datagrams(port number)
Network Layer datagrams or packets (IP 사용)
Data Link Layer frames (mac address 사용)
Physical Layer bits (address 필요 X)

 


Physical Layer


제1 계층 (최하위 계층)

bit 단위로 transmission

장치간의 물리적인 접속(Point-to-Point or Multipoint connection)을 제어하기위한 기능을 제공
데이터 부호화 방식, 신호형식, 데이터 충돌 감지 등을 정의
기계적, 전기적, 기능적 및 절차적 특성을 고려
전송 매체를 통한 실제의 individual bits 전송(from one hop(node) to the next) → hop-to-hop 

Data Link Layer


제2 계층

physical layer에서 사용되는 통신 매체를 통해 데이터를 one node에서 next로 frame단위로 전송 (hop-to-hop)
Physical addresing이 있다. (sender: source address, receiver: destination address), (48bits = 6byte)
Flow Control (traffic이 많으면 쪼개서 보냄.)
Error Control (에러 검출 및 에러 제어를 관리)
Access Control (해당되는 mac address를 가지고 있을시에만  frame을 볼 수 있게 함.) 
Data에 Header(destination address | source address) + Tail을 붙인다.

 

Figure 2.19

Figure 2.19에서 보면, Sender의 source address: 10  Receiver의 destination address: 87이다.

sender가 data를 보내려면 data link layer에서는 Data에 Header와 Tail을 Data의 앞뒤에 각각 붙여 frame을 만든다. (If, data의 크기가 크면 쪼갤 수 있다.)

여기서 Header에는 2.19와 같이 앞에 destination address 87이 있고 뒤에 자신의 주소 source address 10이 생기게 된다. 

만들어진 이 frame은 제1 계층 physical layer에 가서 LAN을 통해  Receiver에게 전달된다.

Receiver에게 전달되는 과정은 physical layer에서 bit단위로 전송이 되고 그다음 data layer에서 frame단위로 있는 data의 header와 tail을 제거하고 다음 network layer에게 넘기게 된다~~

 

말이 너무 많아도 한번 그림을 보면서 이해하면 좋을것 같습니다~~^^


Network Layer


제3 계층

통신망을 사용하여 이동하는 사용자 data에 대한 경로 선택, 데이터 교환 및 중계 기능
datagram or packets단위로 original source에서 final destination으로 전달 (end-to-end)
대표 프로토콜: IPv4(우리집은 이거 써요^^), IPv6

 

Transport Layer로부터 segments단위로 서비스 요청받으면 Network Layer에서는 Packet의 앞에 Header를 붙입니다~

Header에는 source IP address와 destination IP address가 적혀있습니다. data link와 비슷한 내용이니까 data link 이해하시면 쉽게 이해하실 수 있으실 거예요~~

Figure 2.20

Figure 2.20에서 보면 sender가 보낸 정보가 recevier에게 도착하기 위해서 3개의 LAN을 통해 두 개의 routers를 거쳐야 합니다. 여기서 더 살펴보면 Sender와 Receiver위에 있는 알파벳/숫자, 순서대로 알파벳은 network layer address고 숫자는 data link layer address입니다!!

 

잊지 말아야 할 것: network layer는 end-to-end / data link layer or physical layer는 hop-to-hop !!!

 

차근차근 살펴보겠습니다~~ 처음에 상위 계층으로부터 data를 요청받습니다. 그러면 network layer에서는 data에 Header를 붙이게 되는데 source address | destination address를 붙이게 됩니다. 그래서 | A | P | DATA | 가 만들어집니다. 

그러고 나서 만들어진 datagram or packets을 가지고 하위 계층 data link layer에 서비스를 요청하게 됩니다. data link layer는 header와 tail이 붙게 되는데 | Header | A | P | DATA | Tail | 만들어집니다. 여기서 Header에서는 data link layer  destination address |  data link layer source address가 붙습니다. 그러면 95 |10 이 붙을 거 같지만 그렇지 않습니다.

 

왜냐하면 data link layer는 hop-to-hop이라 endsystem에서 다음 router까지 가게 됩니다. 그러므로 router1의 data link layer address인 20이 붙게 됩니다.  | 20 | 10 | A | P | DATA | Tail | 이렇게 physical layer에게 전달되고 bits단위로 LAN1을 통해 router1으로 가게 됩니다. 

 

Figure 2.20에서 보듯이, Router1을 거치고 LAN2를 통해 Router2를 통해 가게 됩니다. 그러므로 계속 바뀌는 값은 data link layer에서 만들어진 Header값이 바뀌게 됩니다. router2로 가기 위해서는 router 1의 address가 99이고 router 2의  address가 33이므로 | 33 | 99 | A | P | DATA | Tail | ☜ 이렇게 만들어집니다. 

 

Router2에서 LAN3를 거쳐 Receiver에게 전달될 때,  | 95 | 66 | A | P | DATA | Tail | 로 data link layer에서 만들어져 physical layer에 서비스를 요청합니다. 

 

마지막으로 receiver는 서비스를 제공받기 위해 data link layer와 network layer에서 header들과 tail을 제거합니다. 그리고서 sender가 보내려는 정보를 receiver는 최종적으로 받게 되는 것입니다.

 

내용이 너무 긴데 그림 보면서 이해가 되면은 설명은 안 읽으셔도 될듯합니다~~


Transpor Layer


제4 계층

정확한 데이터 전송을 제공하는 계층
하위계층과 상위계층의 인터페이스 역할
데이터 전송에 대한 오류 검출, 오류 복구, 흐름 제어를 수행
Process-to-Process delivery
대표 프로토콜 : TCP, UDP, SCTp

Header에 address가 붙는다!!
Figure 2.21

Sender의 proceess a가 receiver의 process j와 통신(communication)하고 싶어 하므로, Header에 a | j 가 붙게 된다!!


Application Layer


제5 계층(최상위 계층)

통신망으로 연결된 응용 프로세스들의 정보교환이 되는 계층
대표 프로토콜 : SMTP, FTP, Telent, HTTP, etc.


Encapsulation / Decapsulation


 

말 그대로 캡슐화와 역캡슐화이다. 캡슐화는 막 캡슐처럼 꽁꽁 싸매는 거고 역캡슐화는 그런 캡슐화를 풀어내는 것이다~~


Multiplexing / Demultiplexing


Source : Multiplexing (상위 Layer 여러 개가 하위 layer 하나를 같이 사용)

Destination : Demultiplexing


오늘 끝.... OSI모델도 있지만 TCP/IP에 비해서 거의 안 쓰기 때문에 생략!!!

정리하기가 은근히 힘들구먼!!!!

다음 거도 얼른 마저 올려야지!!!ㅋㅋㅋㅋ

관련글 더보기