목록CS(Computer Science)/네트워크 (4)
나의 길

이번 글은 개발을 하며 단편적으로만 알던 HTTP를 조금 더 확장시켜 이해한 내용들입니다. ✅ HTTP란? 약자로 풀어보면 HyperText Transport Protocol, HyperText는 일반 텍스트가 아닌 텍스트들이 링크로 서로 연결되어 있는 것을 뜻하며 이후 Transport Protocol은 전송 규약이다. 원래는 HTML 같은 것들을 전송했지만 현재는 바이너리로 변환 가능한 음성, 파일, JSON 등의 거의 모든 데이터 형태를 전송 가능하다. HTTP의 특징 클라이언트 - 서버 구조 : 클라이언트가 서버에게 요청을 보내고 서버가 그 요청에 대한 응답을 보내기 전까지 대기한다. 이런 구조는 각자가 독립적으로 발전할 수 있다. 무상태 : 서버가 클라이언트의 이전 상태를 모른다. 반대로 상태 ..

오늘도 이전 포스팅에 이어 네트워크 글입니다! TCP의 중요 기능을 정리해 보겠습니다. 첫 번째 흐름 제어 즉, flow control은 send buffer가 receive buffer에게 받을 수 있는 만큼만 보내주는 기능입니다. 만약 receive buffer가 반만 받을 수 있는데 send buffer가 가득 준다고 하더라도 받을 수 없습니다. 그렇다면 send buffer는 상대방의 receive buffer의 사용 가능한 공간을 어떻게 알 수 있을까요? 그건 저번 포스팅의 TCP header에 window size를 통해 사용 가능한 공간을 send buffer에게 알려주기 때문에 알 수 있습니다. 이 과정에서 receive buffer가 받을 공간이 없다면 header에 0이 담겨 갈 것입니..

이전 포스팅에 이어 네트워크의 Application(App) 계층과 Transport(Tr) 계층을 살펴보도록 하겠습니다! App 계층에서의 전송단위는 message이고, Tr 계층에서의 전송 단위는 segment입니다. Tr 계층에서는 TCP, UDP와 상관없이 multiplexing과 demultiplexing을 지원합니다. multiplexing은 App 계층에서 많은 Process들이 message를 내려보내주면 Tr 계층의 전송단위인 segment로 만들어 주는 것을 말합니다. 반대로 demultiplexing은 receiver가 segment를 받아 message를 받아야 하는 process(socket)들에게 알맞게 보내주는 것을 말합니다. demultiplexing을 할 때 알맞은 sock..

개발을 하며 말 그대로 컴퓨터에 대한 지식이 부족했지만 부끄럽게도 나중에 본다는 생각으로 접어 놓은 것들이 많습니다. 시간적으로 여유가 있지는 않지만 이제는 하지 않으면 영원히 하지 않을 것 같은 생각이 들어 조금씩 시간을 할애하여 공부를 해보려 합니다. (유튜브에서 시청한 2022 인프콘에서 영한님이 목표와 시스템을 만들며 살아간다고 얘기해 주신 게 맘에 와닿아서 실천!) 이 글에서는 저처럼 아예 모르는 사람들을 위해 지식을 정리해 보겠습니다.(나에게 필요한 것 위주!, 공부한 내용을 바탕으로 글을 구성하다 보니 부족한 설명과 틀린 부분이 있으면 댓글로 남겨주시면 정말 감사드리겠습니다!) 위의 그림은 네트워크의 구성입니다. 네트워크는 매우 간단하게 라우터끼리의 연결(network core)과 라우터와 ..