Lesson 6. 네트워크의 규칙
프로토콜이란?
프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계를 의미합니다.
이렇게 통신을 하기 위해서는 데이터를 상대방에게 보내고, 이를 상대방이 받을 때까지 지켜야하는 여러가지 독립적인 규칙을 준수해야합니다.
Lesson 7. OSI 모델과 TCP/IP 모델
OSI 모델이란?
서로 다른 기기끼리의 통신을 위해서는 표준 규격이 필요합니다.
OSI 모델이란 ISO(International Organization for Stadardization) 국제 표준화 기구에서 제정한 표준 규격을 의미합니다.
OSI 모델은 네트워크 기술의 기본이 되는 모델이며 일곱 개의 계층을 통해서 컴퓨터끼리의 데이터 송수신이 가능합니다.
각 계층마다의 기능을 알아봅시다.
응용 계층
응용 계층은 애플리케이션 목적에 맞는 통신 방법을 선택하는 기능을 제공합니다.
예를 들어, 우리가 어떤 사이트에 방문하려고 한다면 응용 계층에서는 HTTP 프로토콜을 사용할 것이고, 만약 www.tistory.com과 같은 도메인 이름에 해당하는 IP를 알고싶다면 DNS를 사용하고, 이메일 기능을 이용하려면 SMTP를 사용하는 등 여러 통신 방법을 선택하는 기능을 제공하는 것입니다.
표현 계층
표현 계층은 데이터의를 변환하는 기능을 제공합니다.
- 인코딩 및 디코딩 : 데이터를 인코딩 및 디코딩 방법도 가능합니다.
- 암호화 및 복호화 : 데이터를 암호화 및 복호화할 수 있습니다.
- 압축 및 압축 풀기 : 데이터를 압축하고 압축을 풀 수 있습니다.
세션 계층
세션 계층은 데이터의 통신하는 시간을 관리합니다. 통신이 시작되고부터 종료되는 시간을 세션이라고 합니다. 이 세션을 적절한 시간만큼 열어두고, 통신이 종료되면 즉시 닫는 방식으로 효율적이게 관리하여줍니다.
전송 계층
전송 계층은 데이터를 세그먼트 단위로 분할합니다. 분할된 세그먼트를 원래의 데이터로 복구하는 작업도 가능합니다.
또한 흐름 제어와 오류 제어 기능도 합니다. 송신자의 연결 속도가 빨라서 수신자를 압도하지 않도록 데이터의 전송 속도를 조절하고, 데이터가 잘 수신되었는지 확인하여 재송신을 요청하기도 합니다.
이러한 프로토콜에는 TCP와 UDP가 있습니다.
TCP는 조금 더 신뢰도 높은 전송 방식이며, UDP는 전송에 필요한 기능만을 갖는 프로토콜이라고 가볍게 알아둡시다.
이 전송계층에서는 어떻게 다른 애플리케이션까지 데이터를 전송하는지에 초점이 있는 것이 아닌, 어떤 방식으로 데이터를 보낼 것인지에 초점을 둔 계층이라고 보는 것이 좋습니다.
네트워크 계층
네트워크 계층에서는 전송 계층에서 받아온 세그먼트 단위의 데이터를 패킷 단위로 분할합니다.
동일한 네트워크를 사용한다면 네트워크 계층에서의 작업은 필요하지 않습니다. 다만 다른 네트워크를 사용한다면 데이터가 목적지에 잘 도달할 수 있기 위한 최적의 경로를 찾는 라우팅 과정을 거칩니다.
즉, 해당 계층은 목적지 애플리케이션으로 데이터를 어떻게 전송할 것인지에 초점을 두고 있습니다.
데이터 링크 계층
데이터 링크 계층은 네트워크 기기 간에 데이터를 어떻게 전송할 지를 결정합니다. 또한 데이터를 패킷에서 프레임 단위로 분할합니다.
네트워크 계층에서는 IP 기반으로 통신하지만, 데이터 링크 계층에서는 MAC 주소를 기반으로 통신합니다.
물리 계층
물리 계층에서는 케이블이나 무선 신호를 통해서 bits 단위의 데이터를 전송하는 역할을 합니다.
또한 데이터를 전송할 때에는 7계층에서 1계층으로 진행되고, 데이터를 수신할 때에는 1계층에서 7계층으로 진행됩니다.
TCP / IP 모델이란?
TCP / IP 모델은 OSI 모델의 각 계층에서의 유사한 역할들끼리 묶어서 4계층으로 만든 모델입니다. 해당 모델은 아래와 같습니다.
OSI에서의 응용, 표현, 세션 계층을 응용계층으로 묶고, 데이터 링크 계층과 물리 계층을 묶어서 네트워크 접속 계층으로 묶은 모습입니다.
Lesson 8. 캡슐화와 역캡슐화
캡슐화와 역캡슐화란?
데이터가 각 계층을 거쳐가면서 필요한 정보들이 추가됨을 알 수 있었습니다. 따라서 우리는 해당 정보들을 유지해주면서 다음 계층으로 이어가는 과정이 필요합니다. 각 계층은 독립적이기 때문에, 헤더라고 하는 정보를 데이터에 붙여주는 작업을 합니다.
이렇게, 각 계층마다 필요한 정보인 헤더들을 붙여나가는 과정을 캡슐화라고 합니다. 반대로 해당 정보들을 떼어내고 원본 데이터로 돌아가는 작업들을 역캡슐화라고 하는 것이죠.
OSI 모델에서 응용 계층, 표현 계층, 세션 계층을 하나의 응용계층이라고 해봅시다. 사실 이 세가지 계층은 모두 애플리케이션에 영향을 미치는 계층이라고 할 수 있기 때문이죠.
만약 이렇게 된다면 총 4가지 계층에서 아래와 같이 캡슐화가 진행됩니다.
각 계층에서는 필요한 정보를 헤더 형태로 붙이고, 다음 계층으로 보냅니다. 다만 데이터 링크 계층에서는 꼬리에 붙는 트레일러가 있습니다. 이는 헤더와 동일한 개념이지만 꼬리에 붙는다는 차이만 알아둡시다.
참고 자료
https://www.youtube.com/watch?v=6l7xP7AnB64&ab_channel=%EC%89%AC%EC%9A%B4%EC%BD%94%EB%93%9C
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
'CS > Network' 카테고리의 다른 글
[모두의 네트워크] 5장 네트워크 계층 : 목적지에 데이터 전달하기 (1) | 2024.01.02 |
---|---|
[모두의 네트워크] 4장 데이터 링크 계층 : 랜에서 데이터 전송하기 (0) | 2023.12.28 |
[모두의 네트워크] 3장 물리 계층 : 데이터를 전기 신호로 변환하기 (0) | 2023.12.27 |
[모두의 네트워크] 1장 네트워크 첫걸음 (0) | 2023.12.25 |
포트번호? 8080:8080 그게 뭐지?? (2) | 2023.08.30 |