본문 바로가기
TIL/모든 개발자를 위한 HTTP 웹 기본 지식

1.인터넷 네트워크

by Dev_Dank 2021. 6. 20.

인프런의 모든개발자를 위한 HTTP 웹 기본 지식 강의를 들은 내용을 정리하는 포스트입니다. 


IP

인터넷 프로토콜 역할
- 지정한 주소에 데이터를 전달한다. 
- 패킷(Packet)이라는 통신단위로 데이터 전달.

IP 패킷 정보의 간단 도식
출발지와 목적지 아이피를 통해 클라이언트와 서버가 통신한다. 

인터넷 프로토콜 한계

- 비연결성 (패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송)
- 비신뢰성 (중간에 패킷이 사라지면?  패킷이 순서대로 안오면?)
- 프로그램 구분 (같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?)

서버가 죽어있는데 패킷을 보내거나
광활한 인터넷 망의 특정 노드에서 패킷이 소실되거나
패킷전달순서가 달라지거나...(패킷별로 타고 이동하는 노드가 다를수 있다고 한다.)


TCP UDP

위에서 보았듯 IP 만으로는 안전하게 통신이 어렵다 => TCP UDP 활용

인터넷 프로토콜에는 4가지 계층이 아래와 같이 존재하는데, 각 계층을 거치면서 서버에 보낼 메세지가 완성되어진다.
(OSI 7계층과 대응됨. 더 자세한 내용은 모두의 네트워크 책 참고 가능)

각 단계를 거치면서 메세지가 점점 완성된다.
TCP/IP까지 거친후의 메세지 모습 간단 도식

TCP의 특징

- 연결지향 - TCP 3 way handshake (가상 연결)

서버와 클라이언트가 3way handshake를 거쳐 서로 연결된것을 확인후 통신을 시작한다.


- 데이터 전달 보증

TCP 에서는 데이터를 주고받을떄 서로 잘 주고 받았는지의 여부도 확인함.


-
 순서 보장

최적화에 따라 패킷 2부터 다시 보내라고 하지 않고 저장해 뒀다가 재조합해서 쓸수도 있음.


PORT

하나의 컴퓨터에는 하나의 아이피주소가 부여된다. 그런데 해당 컴퓨터에서 여러개의 작업을 동시 수행하면(게임하면서 음악듣고 화상채팅하기) 한개의 아이피주소에서 여러가지 요청이 나올 텐데......

그렇다면 각 패킷에는 아이피 주소말고도 어떤 애플리케이션이 어떤 패킷을 필요로 하는지에 대한 정보가 필요하지 않을까? => 그게 바로 포트넘버!

패킷에 애플리케이션별로 포트넘버를 부여하고
해당 포트 넘버를 통해서 동일 IP에서 패킷을 애플리케이션 별로 배분한다. 
프로토콜별 사용하는 포트넘버의 개략적인 범위


DNS

일반적으로 IP 주소는 숫자로 되어있어서 기억하기 어렵고 변경되기도 쉽다. 따라서 사람이 기억하기 쉽게 도메인명을 이용해서 서버에 접속할수있게 하는것이 DNS (Domain Name Service)

https://developer.mozilla.org/ko/docs/Web

 

개발자를 위한 웹 기술 | MDN

웹(World Wide Web)의 개방성은 웹사이트나 온라인 애플리케이션을 제작하려는 사람들에게 많은 기회를 제공합니다. 하지만 그 사용 방법을 알아야 웹 기술을 잘 활용할 수 있습니다. 아래의 링크

developer.mozilla.org

 

'TIL > 모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글

6.HTTP 상태코드  (0) 2021.06.23
5. HTTP 메서드 활용  (0) 2021.06.23
4. HTTP 메서드  (0) 2021.06.22
3. HTTP 기본  (0) 2021.06.21
2. URI와 웹 브라우저 요청 흐름  (0) 2021.06.20

댓글