[ 살펴보기 ] Network - 네트워크 계층
![[ 살펴보기 ] Network - 네트워크 계층](https://cdn.hashnode.com/res/hashnode/image/upload/v1719330086393/c941cf81-2006-4653-bdfc-03166ae31d28.jpeg)
네트워크는 여러 계층으로 나누어져 있다. 우리가 Web Applicaton을 통해 다른 서버에 데이터를 보내면 네트워크의 상위 계층으로부터 하위 계층으로 전달되며 제일 하위 계층인 Physical Layer에서 데이터를 전기 신호로 변환되어 네트워크를 통해 목적지로 전달된다. 그리고 해당 데이터를 받는 쪽에선 다시 하위 계층부터 시작하여 상위 계층으로 해당 데이터를 전달한다. 이 과정이 반복되며 다른 device 사이의 통신이 이루어 진다.
흔히 네트워크 계층을 이야기 할 때는 주로 OSI 모델과 TCP/IP 모델 이 두 가지 모델이 사용된다. OSI 모델은 네트워크 계층을 7개로 나누어 설명하며 TCP/IP 모델은 네트워크 계층을 4개로 나누어 설명한다.
우선 OSI 7계층 모델을 살펴보자
OSI 7계층
국제 표준화 기구에서 만들어진 모델이며 OSI 모델은 네트워크 계층을 7개로 나누어 설명한다.
1계층 ( Physical Layer ) : 물리적인 연결, 전기 신호를 전달하는 계층이다. Physical Layer의 주요 구성요소로 Hub, Cable, Connector등이 있다
2계층 ( Data Link Layer ) : Physical Layer에서 발생할 수 있는 error를 감지하며 도착지 MAC 주소를 확인함으로서 신호가 자신에게 들어오는 신호인지 아닌지 판단한다
Data Link Layer의 구성요소로 Network Interface Card와 Switch등이 있다. Network Interface Card가 전기신호를 데이터 형태로 변환해서 도착지 MAC 주소를 확인해주는 역할을 한다.
3계층 ( Network Layer ) : Network Layer는 IP 주소를 사용해 최적의 경로를 찾아 해당 경로로 패킷을 전송하는 역할을 한다.
Network layer의 구성요로소 Router, Gateway등이 있다.
4계층 ( Transport Layer ) : Transport Layer는 데이터를 분할해 패킷에 실어 보내다 중간에 패킷이 유실되는 등 문제가 발생했을 때 바로 잡아주는 역할을 한다.
Transport Layer에서 패킷 헤더에 순서를 기입하여 통신하므로 문제가 발생해도 재전송 처리할 수 있다. 패킷을 보내는 순서를 나타내는 것을 Sequence Number라고하고 받는 순서를 나타내는 것을 ACK Number라고 한다. 또한 포트 번호를 통해 장치 내의 application을 구분한다
5계층 ( Session Layer ) : 수신하는 측과 송신하는 측의 프로세스가 연결될 수 있도록 도와주는 역할을 하는 Layer이다. 연결을 안정적으로 관리하고 작업이 끝나면 해당 연결을 끊는다. 세션을 만들고 없애는 역할을 해당 Layer에서 수행된다
6계층 ( Presentation Layer ) : 해당 계층은 인코딩이나 코드 변환과 같이 변환기와 같은 역할을 수행한다. MIME 인코딩 및 코드 변환과 같은 작업이 해당 Layer에서 수행된다
7계층 ( Application Layer ) : 실제 application 서비스를 제공하는 계층이다. 많은 프로토콜이 있지만 대표적으로는 FTP, HTTP, SMTP 등이 있다
TCP/IP
반면 TCP/IP 모델은 네트워크 계층을 4개로 나누어 설명한다
1계층 ( Network Access Layer ) : OSI Model에서 1계층 ( Physical ) 과 2계층 ( Data Link )에 대응되는 계층이다. 물리적인 연결, 전기 신호를 전달하는 계층이다
2계층 ( Internet Layer ) : OST Model의 3계층 ( Network )과 대응되는 계층이다. IP 주소를 사용해 경로를 찾아 해당 경로로 패킷을 전송한다
3계층 ( Transport Layer ) : OSI Model의 4계층 ( Trasport )과 대응되는 계층이다. 데이터를 패킷으로 분할하고 만약 통신 중간에 패킷이 유실되는 등 문제가 발생했을 때 바로 잡아준다
4계층 ( Application Layer ) : OSI Model의 5계층 ( Session ), 6계층 ( Presentation ), 7계층 ( Application )에 대응되는 계층이다. 실제 Application 서비스를 제공하는 계층이다
Incapsulation & Decapsulation
Application Layer에서 하위 Layer로 데이터를 전달할 때 각 계층마다 필요한 정보를 헤더에 추가하여 하위 Layer로 전달하는데 이 과정을 Incapsulation이라고 한다
반대로 데이터를 받는 쪽에서 하위 Layer로부터 상위 Layer로 데이터를 전달할 때 각 계층을 거쳐갈 때 마다 해당 계층의 header 정보를 확인하고 벗겨내는 과정을 Decapsulation이라고 한다.
Data Protocol Unit
각 계층에서 헤더와 데이터를 합친 부분을 Protocol Data Unit( PDU ) 이라고 부르며 계층마다 부르는 명칭이 다르다.
OSI model에서 계층별 PDU 명칭은 아래와 같다
1계층 : Bits
2계층 : Frame
3계층 : Packet
4계층 : Segment
5,6,7 계층 : Data
TCP/IP model에서 계층별 PDU 명칭은 아래와 같다
1계층 : Frame
2계층 : Packet
3계층 : Segment ( TCP ) or Datagram ( UDP )
4계층 : Data
![[ 살펴보기 ] RDB - Relationships](https://cdn.hashnode.com/res/hashnode/image/upload/v1739711556668/48dc9e84-a621-42aa-9c9f-5fc5c436f0ec.jpeg)
![[ 살펴보기 ] MySQL - Data types](https://cdn.hashnode.com/res/hashnode/image/upload/v1739593589113/530f8704-4d27-42c9-a451-bb5c63150b99.jpeg)
![[ 살펴보기 ] TypeORM - Transactions, Migration](https://cdn.hashnode.com/res/hashnode/image/upload/v1739106042581/980b8133-61d4-406a-a026-65be9c28eace.jpeg)
![[ 살펴보기 ] TypeORM - Relations](https://cdn.hashnode.com/res/hashnode/image/upload/v1738666874402/b688bd0b-b6bb-4f43-87d8-c1b46b59f1b7.jpeg)
![[ 살펴보기 ] TypeORM - Basics](https://cdn.hashnode.com/res/hashnode/image/upload/v1738666803591/bef5df17-7dc7-4123-ae55-004d5042df39.jpeg)