🎞 OSI 7계층말고 또??이전 블로그에서는 네트워크 전송 시 데이터 표준을 정리한것이 OSI 7계층이라는 말을 했다. 이것은 이론과도 같은 말인데 이 이론을 현대 인터넷 표준에 맞춰 재설정된것이 TCP/IP 4계층이다. 굳이 나누지 않아도 되는 층을 단순하게 합치고 중요하게 다뤄야하는 층만을 나누어 확인한다. 그렇다면 간단하게 어떤 층이 생략되고 어떻게 이름이 변경되었는지 알아보자🎞 TCP/IP 4계층1. Network LayerOSI 에서 물리와 데이터 링크 계층을 합쳐놓은 곳이다Node - to - Node간의 신뢰성 있는 데이터 전송을 담당하는 계층이다.기존의 데이터 링크의 역할인 MAC주소를 핸들링 할 뿐아니라, 물리의 역할인 데이터 패킷을 전기신호로 변화하여 선로를 통하여 전달할 수 있게 ..
✉ 왜 7계층으로 나눈걸까?쉽게 말해 이상이 발생하면 어느 단계에서 이상이 발생한지 쉽게 알 수 있고 그에 따라 빠른 대처가 가능하기 때문이다. 그것을 네트워크의 진행과정을 7단계로 나누면서 OSI 7계층이 나타난 것이다 ✉ 네트워크 OSI 7계층1. 물리 계층 (Physical Layer)전기적 신호가 나가는 물리적인 장비이다단지 데이터를 전달할 뿐 어떤 데이터인지 어떤 에러가 있는지에 대한 정보는 다루지 않는다 2. 데이터 링크 계층 (Data Link Layer)물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와준다.통신에서의 오류를 찾고 재전송도 해준다.※ e.g. 흐름제어, 오류제어, 순서제어해당 계층에서는 MAC주소를 가지고 통신한다.MAC주소..
🩹 Naver가 보이는게 당연???우리가 Naver를 클릭하면 자연스럽게 보여지는 화면은 항상 당연하다고 생각하게 된다. 때문에 CS를 공부할때도 생각보다 당황하게 되는 주제 중 하나이다. 왜냐하면 늘 당연하고 자연스럽다고 생각한것에 대한 과정을 막상 바라보면 굉장히 복잡하고 생각보다 어렵기때문이다. 그래서 한번 알아보고자 한다. 🩹 Web 동작의 원리1 & 2. 사용자가 웹 브라우저를 URL 입력을 통해 검색한다 사실 이는 2번의 과정과도 같다.3. 사용자가 입력한 URL 주소 중에서 도메인 네임 부분을 DNS 서버에서 검색한다4. DNS 서버에서 해당 도메인 네임에 해당하는 IP주소를 URL과 함께 전달한다.5 & 6. 웹 페이지의 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용해서 ..
💬 Cookie 와 session의 등장 HTTP 는 비연결 지향으로 서버가 클라이언트의 요청에 따라 응답을 보내주면 바로 연결을 끊는다.(Connectionless) 또한, 연결을 끊는 순간 클라이언트와 서버의 통신이 종료되며 상태 정보를 유지하지 않는다.(Stateless) 이와 같은 특성으로 HTTP 프로토콜은 모든 요청 간의 의존 관계가 없어 현재 접속한 사용자가 이전에 접속한 사용자와 같은 사용자인지 알 수 없다. 즉, 클라이언트와 서버가 통신할 때마다 새롭게 연결해야 하며 클라이언트는 매 요청마다 인증 과정을 거쳐야 한다. 따라서, HTTP 프로토콜에서 이전 요청과 현재 요청이 같은 사용자의 요청인지 알게 되는 상태 유지를 위해 쿠키와 세션을 사용하게 되었다. 💬 Cookie Stataless..
💬 HTTP(Hypertext Transfer Protocol) 서버 / 클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. Hypertext : 다른 페이지의 링크를 담고 있는 문서 Transfer : 이동통신 Protocol : 규약 HTTP는 인터넷에서 하이퍼 텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 텍스트, 이미지, 영상, JSON 등 거의 모든 형태의 데이터를 전송할 수 있다. 현제 HTTP/1.1이 가장 보편화 되어있으며 현재는 HTTP/2를 거쳐 3까지 개발이 되어있다. 하지만 1.1을 많이 사용하는 모습을 볼 수있다. HTTP의 ..
💬 지연과 손실 네트워크 전송도 결국엔 물리적인 전파를 통해 전달되는 과정을 거치게 된다. 사람이 사람한테 무언가를 건내줄때 실수를 하듯이 전기 선들도 주위 환경적인 요소가 굉장히 중요하다. 여기서 오류가 생긴다면 지연이 발생할 확률이 굉장히 높아진다. 패킷이 송신측에서 출발해서 수신측까지 도달하기까지의 과정에서 수많은 라우터를 거치게 된다. 경로상의 각 노드에서 패킷은 다양한 지연을 겪게 되는데 노드 처리 지연, 큐잉 지연, 전송 지연, 전파 지연이 대표적이다. 해당 지연들이 쌓이고 쌓여 전체 노드 지연을 일으킨다. 💬 지연(Delay) Processing delay(처리 지연) 패킷 헤더를 조사하고 패킷을 어디로 보낼지 결정하는 곳 노드 처리 이후에 라우터는 목적지 라우터로 향하는 링크의 큐에 보내게..
OSI 7계층과 TCP/IP 모델의 전송계층에서 사용되고 있는 프로토콜인 TCP 와 UDP는 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하고 있는 계층이다. 💬 TCP 데이터를 중요하게 생각하며 확실하게 주고 받고 싶은 경우 TCP 를 사용하게 된다. 통신을 하게된다면 서로의 컴퓨터끼리 '보냈습니다' 와 '받았습니다' 라고 서로 확인을 하면서 데이터를 주고 받으며 통신의 신뢰성을 가지게 된다. TCP 를 사용하는 예 ) 웹, 메일, 파일 공유 등과 같이 데이터를 누락시키고 싶지 않은 서비스는 TCP를 사용한다. 특징 연결 지향 방식으로 패킷 교환 방식을 사용한다. 3-way-handshake, 4-way-handshake 과정을..
TCP의 혼잡 제어는 흐름 제어나 오류 제어와는 다르게 라우터를 포함한 넓은 범위의 전송 문제를 다루게 된다 💬 AIMD(Additive Increase / Multiplicative Decrease) 처음엔 패킷을 하나씩 보내고 문제가 발생하지 않는다면 윈도우 크기를 1씩 증가시킨다 패킷 전송에 실패하거나 일정 시간을 넘으면 패킷 전송 속도를 절반으로 줄인다. 네트워크에 늦게 들어온 호스트가 처음에는 불리하지만, 시간이 흐르면서 평형상태로 수렴한다 문제점은 초기에 네트워크의 높은 대역폭을 사용하지 못해서 오랜 시간이 걸리게 되고, 네트워크가 혼잡해지는 상황을 미리 감지하지 못한다. 즉, 네트워크가 혼잡해지고 나서야 대역폭을 줄이는 방식인 것이다. 💬 Slow Start AIMD가 네트워크 수용량 주변에..
전송계층에 해당하는 프로토콜인 TCP는 흐름제어, 오류제어, 혼잡제어를 제공하는데 흐름제어를 하는 방법을 알아보자 💬 Stop - And - Wait 컴퓨터 네트워크 설정에서 재전송을 기반으로 하는 신뢰적인 데이터 전송 프로토콜 중 하나가 ARQ프로토콜이다. 이 StopAndWait가 ARQ의 방식 중 하나이다. 이 방식에서 송신측 A가 B에게 1개의 프레임을 송신하게 되면 B는 해당 프레임의 에러 유무를 판단하여 A에게 ACK 혹은 NAK을 보내게 된다. 장점 과 단점 장점 구현 방식이 매우 단순하며 송신 측 내에 최대 프레임 크기를 버퍼 1개만 잡아도 이론적으로는 문제가 없다 오류 검출과 복구가 쉽다 단점 효율이 낮다 송신자가 매번 한개의 프레임만 전송하면 전송 성능이 느리고 채널의 활용도가 매우 낮..
💬 TCP 인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 특징 신뢰적이고 연결 지향성 서비스를 제공하며 패킷의 추적 및 관리를 하는 역할이다. 연결형 서비스로 신뢰적인 전송을 보장하기 위해 handshake를 진행한다. 연결 시 : 3-way Handshake를 진행 연결 해제 시 : 4-way Handshake를 진행 흐름제어와 혼잡제어를 수행하게 되지만 이 때문에 속도 측면에서는 아쉬운 면이 있다 전 이중 방식, 점대점 방식이 있다. TCP-HEADER(With 플래그 정보) 패킷에는 어떤 패킷이 새로운 시도이고 기존 통신에 대한 응답인지 구분해야 했습니다. TCP Header에는 Code bit(Flag bit)라는 부분이 존재한다. 이 부분은 6bit로 구..