우당탕탕 개발자 되기
인터넷 통신 본문
IP(Internet Protocol)
역할
- 지정한 IP 주소에 데이터 전달
- Packet 이라는 통신 단위로 데이터 전달
정보
- 출발지IP, 목적지IP, 기타 ...
- 전송데이터
IP 프로토콜의 한계점
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성 : 전송 중 패킷손실, 순서 변화 등을 제어 불가능
- 프로그램 구분 : 같은 IP를 사용하는 어플리케이션이 2개 이상일때 구분 불가능
인터넷 프로토콜 스택의 4계층
- 어플리케이션 계층(HTTP,FTP)
- 전송 계층(TCP, UDP)
- 인터넷 계층(IP)
- 네트워크 인터페이스 계층
TCP(Transmission Control Protocol)
프로토콜 계층 전송 순서
1. 프로그램이 메시지 생성 ->
2. SOCKET 라이브러리를 통해 전달 ->
3. TCP 정보 생성, 메시지 데이터 포함 ->
4. IP 패킷 생성, TCP 데이터 포함 ->
5. LAN 카드통해 서버로 전송
TCP/IP 패킷 정보
IP 패킷 정보 + 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보...
특징
- 연결지향 - TCP 3 way handshake(가상연결)
클라이언트 -> 서버 접속요청(SYN)
서버 -> 클라이언트 요청수락(ACK), 접속요청(SYN)
클라이언트 -> 서버 요청수락(ACK) + 데이터 전송도 함께 가능
- 데이터 전달 보증 (데이터 전송 후 데이터 수신 확인 메시지 전송)
- 순서 보장 (수신했을때 순서가 이상하다면 재전송 요청)
- 신뢰할 수 있는 프로토콜
- 현재 90% 이상이 TCP 사용
UDP(User Datagram Protocol)
- 연결 지향 x
- 데이터 전달 보증 x
- 순서 보장 x
- 단순 , 속도가 빠르다
- IP+ PORT + CheckSum 정도 추가된 수준
- 어플리케이션에서 추가 작업이 필요하다.
PORT
- 한 IP에서 이용하는 어플리케이션이 2가지 이상일 때 구분하기 위해 사용한다.
출처) 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 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스
www.inflearn.com