시작하며..
저번 2학기에 들은 수업 중에 가장 인상깊고 재밌게 배운 과목이라 잊어버리기 전에 정리 한번 해야지 해야지 하다.. 해가 넘어가서야 정리하게 되었다 ㅋㅋ. 교수님이 영어로 가르쳐서 절대 평가라 개꿀 이러면서 과목 이름도 안보고 신청하게 되었는데 생각보다 내가 궁금한 것들이 많이 해소 된거 같아서 좋았다.. 아무튼 시작해보자
1. 용어 정리
먼저 가장 간단하게는 client와 server라는 구분이 있다. 당연히 client는 우리를 말하고(정보를 요청하는) server는 네이버, 구글 뭐 이러한 것 처럼 정보를 제공하는 역할을 말한다. 여기서 client와 server는 network edge(host)라 부른다. 앞으로 다루겠지만 라우터나 스위치라는 도구들이 있다. 이 녀석들은 network core라고 부른다. 사실 생각해보면 이 세상에 존재하는 모든 server와 client들을 다이렉트로 연결 할 수 없으니 network core들이 복잡하게 인터넷 망을 구성하고 있고 network edge들이 그 인터넷 망과 자기를 연결하는 개념이다.
2. 기본적인 틀
- 5.가장 맨 위층인 application layer는 HTTP(웹 브라우저) SMTP(이메일) FTP(파일 전송)과 같은 메시지들을 해석하여 사용자에게 보이는 역할을 하기도 하고 사용자 입력과 관련해 다양한 연산을 하기도 한다. 또한 바로 밑 계층인 transport로 정보를 넘기기 전에 socket이라는 녀석이 있는데 이건 다음 글에서 다루겠다.
- 4.바로 밑 계층인 transport layer는 network core에서 정보들이 어떠한 방식으로 움직일지 정한다 가장 크게는 TCP와 UDP로 두 종류가 있고 UDP도 두 가지로 나뉘지만 곧 자세히 다루겠당.
- 3.가운데 계층인 network layer는 사용자 간의 연결을 돕는다. 여기서 유명한 IP가 필요해진다. 여기서 의문이 들 수도 있다. 컴퓨터끼리 연결만 하고 파일 주고받으면 되는거 아냐? 이 위 계층들은 왜 필요한거야! 다음 문단에서 말해줄께~
- 2. link layer는 Data-Link Layer라고 부르기도 한다. 사실 네트워크 세상에는 IP 뿐만아니라 MAC주소라는 것도 있다. 이 세상에 컴퓨터가 너무 많아져서 물리적으로 가까운 host들을 묶어놓다 보니 이러한 개념이 생겼다. IP는 주민등록 번호고 MAC주소는 집 주소라고 생각하면 편할 것이야
- 1. 가장 아래 계층인 physical layer는 닉값 한다. 우리 눈에 보이는 케이블이나 광섬유 케이블을 지칭한다. 사실 이 계층이 없다면 아무 통신도 못하겠지...
3. 각 계층의 역할들에 대하여
client는 자신이 원하는 정보를 5층부터 시작해서 1층을 통해 network core로 요청 메시지를 보낸다. 각 층에서 상대방이 필요하거나 network core에서의 여행을 도와줄 정보들을 마치 선물 포장 처럼 덧대고 덧대고 덧댄다. 이제 core에서 온갖 경로를 통해 이 선물포장이 server에 알맞게 도착하면 1계층부터 5계층 까지 선물 포장을 정성스럽게 하나씩 뜯어내어서 요청 메시지를 읽어서 아하 이러한 정보가 필요하구나! 라고 해석하여 응답 메시지를 선물포장해서 보내는 것이다.
앞으로 이 각 층에서 붙여주는 선물 포장들에 대해서 다루는 것인데 3계층의 질문에 대한 답이 앞으로의 글을 보는데 도움이 될거 같아서 아주 쬐끔만 잡아줄께.
- 가장 위에인 application layer의 경우 생각해보면 컴퓨터는 여러 어플들이 있다. 그리고 동시에 돌아가는 것처럼 보이기도 한다. 그리고 각 어플에는 socket이라는 출입문이 있어서 이 문을 통해 5~4계층의 통신을 다룬다.
- 이제 transport의 이야기를 다루자면, 그렇다면 난 프랑스 얼음왕자니깐 스페인 공주와 카톡을 하고 있는 중에 '사랑해' 라고 엔터를 누르는 순간 그 메시지가 공주의 핸드폰에 있는 카톡이 아닌 핸드폰에 있는 메모장에 적히면 상당히 곤란할 것이다. (로맨틱 한데?) 아무튼 이렇게 하나의 host에 존재하는 여러 app들을 구분해 위에서 언급한 socket에 맞게 보내야 하는데 이것이 바로 trasport layer의 중요한 역할 중 하나이다.
- network layer는 각자의 IP 주소를 통해 서로가 서로를 알아보는 과정이다. 물론 위에서 app들을 기준으로 나누기도 해야하지만 당연히 누구에게 보낼지 알아야 하겠지. 누구한테 보낼 지를 파악 하고 그 후에 각 app에 맞게 넣어야 한다. 어때 의문이 좀 풀렸지?
- 그렇다면 data-link layer는?? 이것은 정말 물리적으로 가까운 곳들 끼리 엮어놓은 것이다. 컴퓨터가 서로를 알아볼 때 IP 주소 뿐만 아니라 물리적 주소인 MAC 주소가 필요하다. 물리적으로 가까운 녀석들 끼리는 network core같은 곳에 메시지를 밀어 넣을 필요가 없어지는 장점이 있겠지. 위에서 말한 대로 정말 가까운 컴퓨터끼리 묶어 놓다 보니 이렇게 되었다. 생각보다 쓸모 있는 것을 마지막 글에서 알게 될 끄야
4. 선물 포장지 명
선물 포장을 덧대는 과정을 encapsulate 이라 하고 선물 포장지를 하나하나 벗기는 과정을 decapsulate 이라고 한다. 당연히 encapsulate은 보내는 곳에서 decapsulate은 받는 쪽에서 하겠지?! 각 층별로 포장지를 붙인 상태에 대한 명칭들이 있는데 5계층 - message / 4계층 - segment / 3계층 - datagram / 2계층 - frame이라고 부른다. 알아두면 다음 글들에 좋다.
5. 마무리
이정도면 전반적인 흐름은 대강 잘 잡은 것 같다. 마지막으로 저 5계층은 각 host에만 필요하고 network core를 구성하는 스위치와 라우터에는 저 5개가 다 필요하지 않다. 그 이유는 차차 이야기 해주겠다!
'컴퓨터 네트워크' 카테고리의 다른 글
04. Data-Link layer (0) | 2022.01.31 |
---|---|
03. Network layer (0) | 2022.01.31 |
02. Transport Layer (0) | 2022.01.15 |
01. Application Layer (0) | 2022.01.15 |