인터넷 네트워크
1. 인터넷 네트워크
인터넷에서 서로 다른 컴퓨터들이 어떻게 통신할까?
2. IP (인터넷 프로토콜)
서로 다른 컴퓨터들이 통신하기 위해 IP 주소를 부여한다.
- 지정한 IP 주소에 데이터를 전달하고, 패킷이라는 통신 단위로 데이터를 전달하게 된다.
- IP 패킷 정보에는 출발지 IP, 목적지 IP등과 함께 전송 데이터를 넣어 전달한다.
3. IP 프로토콜의 한계
1) 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
2) 비신뢰성 : 중간에 패킷이 사라지거나 (패킷 소실), 패킷이 순서대로 도착하지 않는 경우
3) 프로그램 구분 : 같은 IP를 사용하는 서버에서 여러 개의 애플리케이션과 통신하는 경우 구분이 어렵다.
==> 이러한 문제들을 해결해주는 게 바로 TCP 프로토콜!
4. TCP / UDP
- 프로토콜 계층
ex) 채팅 프로그램으로 hello world라는 메시지를 전송하고 싶을 때 ?
1) 소켓 라이브러리를 통해 OS 계층에 hello라는 메시지를 전달한다.
2) 이 메시지 데이터를 포함한 TCP 정보를 생성하고
3) 이 TCP 데이터를 포함한 IP 패킷을 생성한다.
4) 이를 랜카드를 통해 나갈때 이더넷 프레임과 함께 나간다.
- TCP/IP 패킷 정보
: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등을 포함
- TCP의 특징 (전송 제어 프로토콜 Transmission Control Protocol)
- 연결 지향 - TCP 3 way handshake (가상 연결)
클라이언트에서 서버에게 SYN이라는 메시지를 보내고,
서버에서는 받았다 + 연결해주라는 의미에서 SYN+ACK을 보내고,
클라이언트에서 받았다는 의미에서 ACK를 보낸다.
총 세번 메시지를 주고받고 연결이 되었다는 것을 인식하게 된다. 그 이후에 데이터를 전송하게 된다.
만약 서버가 꺼져있었다면 SYN 메시지를 보냈을 때 서버에서 응답이 없으므로 연결되지 않는다.
- 데이터 전달 보증 : 데이터 전송 후 서버에서는 데이터 전달에 대한 응답을 해주므로 전달에 대한 보증이 된다.
- 순서 보장 : 순서가 잘못 도착하면 서버 측에서 다시 보내라고 응답한다.
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
- UDP 프로토콜의 특징 (사용자 데이터그램 프로토콜 User Datagram Protocol)
- 하얀 도화지에 비유 (기능이 거의 없음)
- 연결지향, 데이터 전달 보증, 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP와 거의 같지만, PORT, 체크섬 정도만 추가된 것
- 애플리케이션에서 추가 작업 필요
- TCP는 손대지 못하고, UDP에서 손을 대서 최적화할 수가 있다. (이러한 면에서 요즘 각광받고 있다!)
5. PORT
** 만약 클라이언트 PC가 여러 개의 서버와 통신을 해야한다 (게임+화상통화+웹브라우저 서칭...) 면 해당 패킷들만으로는 구분이 불가능하다. 이를 구분하기 위해서는 PORT가 필요.
ex) 웹 브라우저 요청 시 80 포트로 보내고, 서버에서 해당 IP에 응답 시 10010포트로 보내준다. (이는 패킷에 정보가 들어가 있다)
like 아파트(IP) + 몇 동 몇 호 (PORT)
6. DNS (도메인 네임 시스템 Domain Name System)
** IP는 기억하기 어렵고, 변경 가능성이 있다. => 그래서 DNS가 있다. 도메인 명을 등록하고 이를 IP 주소로 바꿔줄 수가 있다.
-> DNS 서버에 도메인을 등록하고, 해당 도메인의 IP 주소를 찾을 수가 있다.
** 해당 내용은 김영한님의 강의를 수강하며 정리한 것입니다.
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
모든 개발자를 위한 HTTP 웹 기본 지식 강의 | 김영한 - 인프런
김영한 | 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연
www.inflearn.com