Network/Network

OSI 7 Layer 3&2&1, Transport Layer, 4&3&2&1

finepiz 2022. 7. 8. 11:30

===

https://youtu.be/1pfTxp25MA8

 

===

데이터를 보내는 컴퓨터와 라우터

1.

보내는 컴퓨터에서, 보내고 싶은 데이터가, 3계층 인코더의 인풋으로 들어간다

결과로 앞에 목적지 IP주소가 붙어서 나온다. 이것을 구조체라고 생각해도 되고, 객체지향에 익숙하면 객체라고 생각하면 된다. 구조체나 객체나 안에 변수(필드)가 있기 때문에 그 변수중에 하나에 데이터를 넣고 또 다른 변수를 만들어서 거기에 목적지 주소를 담는 식이다.

2.

그게 다시 2계층 인코더의 인풋으로 들어간다

결과로 앞뒤에 1111과 0000이 붙은게 나온다

3.

얘는 다시 1계층 인코더에 인풋으로 들어가서 아날로그 신호가 돼서 나온다

 

===

4.

아날로그 신호가 전선을 타고 넘어가서 인접한 라우터에 들어간다

5.

라우터의 1계층 디코더를 통해 1차적으로 0과 1로 해석이 된다

6.

그것이 2계층 디코더를 통과하면서 앞뒤에 플래그 1111 0000이 없어진다

7.

그것이 3계층 디코더로 들어가서 앞에 IP주소는 이미 사용이 되고(▽디코더가 사용을 해주나봐)

8.

3계층 인코더로 들어가서 앞에 목적지 IP주소가 붙고

9.

그게 2계층 인코더로 들어가서 앞뒤에 플래극가 붙고

10.

얘는 또 1계층 인코더로 들어가서 아날로그 신호가 돼서 다음 순서인 라우터에게 전달된다

 

===

4계층, 전송 계층, Transport Layper

앞에 내용까지 하면

이제 받을 수 있게 됐다.

근데

- 이 3개의 데이터를 전 세계의 어딘가로부터 받았다

- 이 컴퓨터에는 여러 개의 프로그램들이 실행되고 있다

이제 컴퓨터는 자기가 받은 세개의 데이터를 프로세스들에게 나누어 주려고 한다

이때

 

===

프로세스가 포트번호를 가진다

 

===

데이터를 보내는 사람이 데이터를 보낼 때, 목적지 컴퓨터에 프로세스 중에서 어떤 프로세스에게 줄지를 미리 알고서 그 프로세스 번호를 데이터 앞에다 붙여줘야 된다

 

===

다시 돌아와서

데이터를 받는 컴퓨터에서 두 개의 프로세스가 돌고 있다

이때 데이터 3개가 들어왔을 때, 메시지를 뜯어본다

메시지에 써져 있는 포트번호에 맞게 프로세스에 주면 된다

 

===

그런 모듈

 

===

얘도 인코딩과 디코딩 과정을 살펴보면

1.

최상위 계층인 4계층 인코더로 원본데이터가 들어가면 앞에 목적지 프로세스의 포트번호가 붙어서 나온다

2.

그게 3계층 인코더에 인풋으로 들어가서 목적지 IP주소를 붙여서 내보낸다

3.

얘는 2계층 인코더로 들어가서.. 1계층 인코더로 들어가서.. 결과적으로 아날로그 신호가 돼서 전선으로 흐른다

4.

도착지의 1,2계층 디코더를 통과하면서 저런 애로 나옴

5.

3계층의 디코더를 통과해서 포트번호까지 남고

6.

4계층의 디코더를 통과해서 포트번호를 활용해서 특정 프로세스에게 전달되면 그 상태로 전달이 된다

 

===

3계층과 마찬가지