본문 바로가기

server

네트워크의 작동원리 (캡슐화 비캡슐화)

네트워크의 계층(물리계층)


네트워크의 계층에는 크게 5가지로 나뉜다. 

 

1. 응용계층

2. 전송계층

3. 네트워크 계층

4. 데이터 계층

5. 물리계층

 

   여기서 우리가 먼저 넘어가야할 부분은 네트워크를 통해 데이터가 넘어간다? 라고 쉽게 말할 수 있지만 절대 그렇지 않다. 우리가 말하는 01010 데이터는 전기신호로 바뀌어서 전달되 나중에 설명하게 될 스위치, 라우터를 통해서 전기신호에서 데이터 신호로 바뀌게 된다.  내가 이 말을 왜 했을까?

    이러한 데이터를 전기신호로 바꿔주는 것이 물리 계층의 역할하기 때문이다. 

 

물리계층에서 데이터로 바뀐 01010 이 숫자들은 이제 어떻게 될까?(데이터 계층)


이러한 숫자들은 이제 적절한 확인 작업들을 진행하게 될 것이다. 정말 수신하는 컴퓨터가 원하는 데이터인지 송신하는 컴퓨터가 보낸 데이터가 맞는지? 일렬의 확인작업이 필요하지 않겠나? 그래서 우리는 데이터 계층에서 렌의 목적지와 출발지  MAC 주소를 확인하게 된다. 거기에 플러스로 트레일러까지 확인하면서 적절한 데이터가 왔는지 검증을 한다.  여기서 MAC주소와 트레일러는 우리는 이더넷 헤더라고 부른다. 이더넷 헤더가 확인이 되면 우리는 이것을 제거해준다.

 

 

 

 

스위치에서 이더넷 헤더를 제거하면 그 다음은?? 라우터로 고고!! P주소와 PORT 비교(네트워크 계층)


IP주소는 컴퓨터 고유의 주소라고 이해하면 된다. 여기서도 똑같이 목적지 IP와 출발지 IP를 비교하여 맞으면 다시 한 번 IP헤더를 제거해준다.

 

 

 

이제 더 확인할게 있나?? 네 ! PORT  도 확인해주세요(전송계층)


IP만 확인하면 끝난거 아냐? NO 컴퓨터에 PORT 도 확인을 해줘야 한다. 포트는 쉽게 말해 아파트의 동 호수라고 얘기 할 수 있는데 이것도 확인해야 한다. 왜냐하면 어떤 어플리케이션에서 요청이 들어온지 모르기 때문이다. 웹서버에서 보내면 80포트에서 요청이 들어올 거고 각 각의 컴퓨터는 자동으로 포트를 할당받는다.  뿐만 아니라 버퍼라는 공간이 있는데 여기서는 무제한 데이터를 못들어오게 데이터 제한을 할 수 있게 해준다.  (buffer) 그리고 일련번호 확인응답번호라고 하는 부분도 있다. 이는 어떤 위치(index)에서 데이터를 가지고 올까를 알려준다. 이를 수신측에서 확인하면 수신측은 다음 필요한 데이터를 확인응답번호로 보내주게 된다. 예를 들어 일련번호 3001 확인번호 4001을 보내면 수신측은 3201(필요한 데이터 위치) + 확인 번호 4001을 다시 보내준다. 

 

참고) TCP같은 경우는 3-way 핸드세이즈로 이 데이터가 정말 신뢰할 만한 데이터인지를 확인한다. 

코드비트 부분을 통해서 SYN <-> ACK 를 두 번 주고 받고 FIN <-> ACK 을 주고 받는다. 

 

 

아  이제 끝났지?? 응 이제 그럼 데이터가 어떤 프로토콜 ? 그리고 달라는거야 아니면 데이터를 주는거야? 알려줘야지 (응용계층)


길고 긴 데이터 검증이 끝나면 이제 데이터가 뭔지 봐야지 ? 근데 데이터만 받으면 되니?? 서버는 데이터를 달라는건지 ? db에 데이터를 저장해 달라는 건지 아무것도 모른다. 뿐만 아니라 데이터가 어떤 프로토콜로 사용한건지 header에 알려줘야 한다. 

 

예를 들어 ex) GET 요청이 HTML HTTP1.1 

 

 

'server' 카테고리의 다른 글

Server의 배포  (0) 2021.12.07
브라우저 가동 원리  (0) 2021.11.18
cache  (0) 2021.11.03
HTTP HEADER  (0) 2021.11.03
http 상태코드  (0) 2021.11.03