2024/06 21

DNS(Domain Name System)에 대하여

1. DNS란?기본적으로 컴퓨터(서버)에는 IP 주소가 있어 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다.예시로, 위처럼 웹 브라우저 주소 창에 URL를 직접 입력하면 웹 사이트가 보인다. 서버에 접속하려면 IP 주소가 필요한데 htttps://www.tistory.com 를 입력했는데 웹 사이트가 보인 것이다. 왜 그런걸까? 바로 DNS 덕이다. DNS(Domain Name System) 서버는 URL을 IP 주소로 변환해주는 시스템이다.nslookup을 사용해 티스토리 도메인 IP 주소를 확인해보면 121.53.105.234 가 나온다. URL 대신 숫자로 구성된 IP 주소들을 기억해 입력하는 것은 너무 러여운 일이다. 이런 이유로 IP 주소가 아닌 htttps://www.tistory..

공부/Network 2024.06.28

HTTP 란? (HTTP 특징 / HTTP 요청과 응답)

1. HTTP (HyperText Transfer Protocol) 개념과 특징 HTTP란 Hyper Text Transfer Protocol의 약자로, World Wide Web(WWW, 웹) 상에서 데이터를 주고받기 위한 프로토콜이다 HTTP는 클라이언트(보통 웹 브라우저)와 서버 간의 요청(request)과 응답(response)을 통해 작동한다 HTTP는 다양한 종류의 데이터(html, css, javaScript, png, gif, mp4)를 전송할 수 있도록 설계된 프로토콜이다. 웹 페이지에 포함된 각 구성 요소(이미지, 텍스트, HTML, 영상 등)는 대부분 개별적인 HTTP 요청을 통해 서버로부터 요청된다. 따라서 가끔 글이 먼저 보이고 이미지가 나중에 보일때가 있는 것이다. 일반적으로 ..

공부/Network 2024.06.28

Web 이란? (웹 페이지, 웹 사이트, 웹 브라우저 차이)

1. Web (웹)웹은 Word Wide Web를 줄여서 부르는 말로, WWW나 W3이라고도 불린다. WWW는 인터넷 상에서 정보를 접근하고 공유할 수 있는 공간을 말한다. 웹은 웹 서버에 저장된 웹사이트나 웹 페이지의 모음으로, 인터넷을 통해 로컬 컴퓨터와 연결된다. 웹 사이트는 텍스트, 이미지, 영상, 오디오 등을 포함하고 있는데, 사용자는 노트북, 휴대전화, 컴퓨터 등의 장치를 사용하여 인터넷을 통해 전 세계 어디에서나 이러한 웹 사이트의 콘텐츠에 접근할 수가 있다.  2. Web의 특징인터넷 상에서 텍스트, 이미지, 영상, 오디오 등과 같은 멀티미디어 정보를 하이퍼텍스트 방식으로 연결하여 제공하이퍼텍스트 (hypertext)는 단순한 텍스트를 넘어서 하이퍼링크를 통해 웹 상에 존재하는 여러 문서나..

공부/Network 2024.06.27

응용 계층의 역할

우리는 웹 페이지를 볼 때 크롬이나 파이어폭스 같은 웹 브라우저를 사용하며 메일을 보내고 받을 때는 Outlook 같은 메일 프로그램을 사용한다. 이렇듯, 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 도와준다. 이런 애플리케이션들은 사용자 측 (= 서비스를 요청하는 측)에서 사용하는 애플리케이션으로 분류된다. 서비스를 요청는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다. 1. 응용 계층응용 계층은 OSI 모델의 최상위 계층, 7번째 계층으로, 다양하게 존재하는 응용 환경에서 공통적으로 필요한 기능을 다룬다. (여기서의 응용 계층은 세션 계층과 표현 계층을 포함한 것으로 보자) 시스템 간의 응용 처리는 상호 간에 통신하면서 일련의 업무를 처리할 수 있도록 필요한 서비스 기능을 제공한다...

공부/Network 2024.06.27

UDP(User Datagram Protocol)란?

1. UDP와 UDP 특징TCP 통신 때를 생각해보자. TCP는 신뢰할수 있는 데이터를 상대방에게 전달하는 것이 목표다보니, 확인하는 게 너무 많다. 데이터 전송 전 3-way handshake로 연결 성립시키기, 데이터를 전송하면 확인 응답받기, 데이터 전송 도중 오류가 발생하면 재전송하기, 윈도우 제어, 혼잡 제어 등 등 뭐가 참 많았다. 이렇게 많은 일(이 기능들이 CPU를 사용해서 속도에 영향을 줌)을 진행하다보니 당연히 전송 속도는 빠를수가 없다. 이렇게 효율성을 중시하는 TCP와 달리 UDP는 빠르게 데이터를 보내자! 에만 초점을 둔 프로토콜이다. 따라서 실시간 스트리밍, 온라인 게임, 동영상 시청 등의 인터넷 서비스에 사용된다. TCP가 신뢰성을 보장하기 위해 연결형 통신 프로토콜인데, UD..

공부/Network 2024.06.26

Port (포트)란?

1. PortIP 주소는 특정 컴퓨터로 데이터를 전송하는 데 사용된다. 그러나 실제로 통신의 출발지와 목적지는 컴퓨터 자체가 아니라 컴퓨터 내의 특정 프로세스다.  따라서 데이터가 컴퓨터에 도착했을 때, 이를 어느 프로세스로 전달해야 할지를 결정해야하는데, 이때 포트 번호가 프로세스를 구분해주는 식별자 역할을 한다. 쉽게 예를 들어, 원룸 아파트 전체를 하나의 컴퓨터로, 각 원룸의 주인을 하나의 프로세스로 가정해보자. 택배기사가 물건(데이터)을 구매자에게 전달하려면, 구매자의 원룸 아파트 주소(IP 주소)뿐만 아니라 구매자가 몇 호에 사는지까지 알아야 한다. 이때 201호인지 1403호인지 알려주는 것이 포트 번호라고 보면 된다.목적지 프로세스를 구분하지 못하면, 예로 사용자가 홈페이지를 보기 위해 웹 ..

공부/Network 2024.06.26

Window size (윈도우 크기)

1. Window size일련번호(Sequence Number)와 확인 응답 번호(Acknowledgment Number)에 대해 이야기할 때 위와 같은 예를 들었었다. 위 예시는 세그먼트 하나를 보낼 때마다 확인 응답(ACK)을 한 번 반환하는 통신이라 효율이 높지 못하다. 이렇게 매번 세그먼트를 하나 보내고 이에 대한 확인 응답을 기다리는 것보다는 세그먼트를 연속해서 수신 측의 버퍼(buffer: 세그먼트를 일시적으로 보관하는 장소)에 보낸 다음에 확인 응답을 반환하는 것이 효율이 높다.하지만 세그먼트를 너무 많이 보내게 되면 수신 측의 버퍼가 초과되어(오버플로우) 데이터가 유실될 수 있다. 그래서 오버플로우가 발생하지 않도록 자신의 버퍼의 한계 크기를 알고 있어야 하는데 이 값이 바로 TCP 헤더의..

공부/Network 2024.06.25

Sequence Number 와 Acknowledgment Number

TCP 통신 3-way handshake에서 실제 데이터를 보내거나 상대방에게 받을 때는 TCP 헤더의 일련번호(Sequence Number)와 확인 응답 번호(Acknowledgment Number)가 사용된다. TCP는 데이터를 분할하여 보내는데, 이때 일련번호는 송신 측에서 수신측에 '이 데이터는 몇 번째 데이터이에요~'하고 알려주는 역할을 한다. 이를 통해 수신자는 받은 데이터가 원래 데이터의 몇 번째 데이터를 받았는지 알 수 있는 것이다.확인 응답 번호는 수신자가 다음에 받을 데이터의 순서를 송신측에 알려주는 역할을 한다. 위 그림의 데이터를 전송하기 전 단계에서 3-way handshake로 연결 수립이 이루어질 때, 이번 통신에 사용하는 일련번호인 '3001'번과  ❶ 호스트 A가 호스트 B..

공부/Network 2024.06.23

TCP 3-way 와 4-way Handshake

TCP는 신뢰성 있는 데이터 전송을 보장하기 위해 여러 기능들을 제공하는 전송 계층의 연결 지향적 포로토콜이다.  TCP를 통해 데이터를 주고 받기 위해서는 먼저 클라이언트와 서버간에 연결이 수립되어야 한다. (클라이언트-서버 간 통신에 자주 사용되는 HTTP도 TCP 기반으로 동작함.) 어떠한 과정을 통해 TCP 연결이 맺어지는지 살펴보자. 1. 3-way handshakeTCP 3-way handshake를 통해 클라이언트와 서버간의 연결(커넥션)이 성립되는 것이다. 안전한 통신을 위해 서로 얼마만큼의 데이터를 송수신 및 처리할 수 있는지 알아야해서 TCP 3-way handshake 과정 중 윈도우 크기(Window Size)와 최대 세그먼트의 크기(MMS, Maximum Segment Size)를..

공부/Network 2024.06.23

TCP 와 TCP 헤더

1. TCP(Transmission Control Protocol) | 전송제어 프로토콜인터넷 프로토콜 스위트( Internet Protocol Suite: 인터넷에서 컴퓨터들이 서로 정보를 주고 받을 때 쓰이는 통신규약[프로토콜]의 모음)의 핵심 프로토콜 중 하나로 인터넷과 네트워크 상에서 데이터를 신뢰성있게 전송하게 해준다. TCP 의 주요 기능: ❶ 연결 지향(Connection-oriented) 통신:TCP는 연결 지향형 프로토콜로, 통신을 시작하기 전에 송신자와 수신자 간에 세션을 설정해야 한다.연결 설정 과정은 3-way Handshake과정 을 통해 이루어짐.  ❷ 신뢰성있게 데이터 전달:TCP는 데이터가 손실되거나 중복되지 않도록 보장.데이터의 순서보장: 데이터의 각 세그먼트에는 시퀀스 번..

공부/Network 2024.06.22