벌써 과정의 50%를 듣게 된 오늘이었고, 눈 깜빡하니까 혼빠진 하루가 끝났다.😂
(국비지원으로 에티버스러닝에서 K-Digital 트레이닝을 하고 있다)
오늘 처음 TCP/IP 프로토콜에 대해 배웠다. 내용이 넘 어려웠는데, 조금이라도 더 이해하고자 아래와 같이 정리해보겠다. 아래 내용은 수업+책(TCP/IP소켓프로그래밍_김선우)을 참고하여 정리했당
TCP/IP
- Trasmission Control Protocol / Internet Protocol
- 컴퓨터가 인터넷 같은 네트워크를 통해 통신하게 하는 일련의 규칙
- (컴퓨터가 서로 대화하는데 사용하는 언어라고 생각하기)
- TCP
- 데이터를 작은 패킷으로 분해해서 패킷이 올바른 순서로 전송함
- 발신자와 수신자 사이의 연결을 설정하고, 수신자를 압도하지 않게 흐름 제어를 해서 오류 감지를 함
- IP
- 서로 다른 네트워크에서 패킷의 주소 지정과 라우팅을 처리함
- 네트워크의 장치에 고유한 IP주소를 할당해서 데이터가 소스에서 대상으로 이동하는 가장 효율적인 경로를 결정함
TCP / IP 프로토콜 구조
-> 면접 때 꼭 물어본다는 개념🔥
(4->3->2->1순으로 보셔용)
1. 응용계층
- 전송계층을 기반으로 하는 다수의 프로토콜과 이 프로토콜을 사용하는 응용프로그램을 포괄함!
- 네트워크 프로그램도 여기에 속함
---------------(우린 응용 계층을 다루고, 아래 애들은 OS가 해결해준다)---------------
2. 전송계층
- 최종 통신 목적지를 지정하고 오류없이 데이터 전송하는 역할을 함
- 통신의 최종목적지는 호스트가 아닌 호스트에서 실행되는 프로세스(응용프로그램)임
- 전송계층에서 프로세스를 지정하는 16비트 주소를 사용하는데, 이걸 Port 번호라고 부름
- 데이터 손실 또는 손상을 검출해서 잘못된 데이터가 목적지에 전달되지 않도록함
- 전송계층에 해당하는 인터넷프로토콜은 TCP와 UDP가 있음
TCP | UDP |
연결형프로토콜 | 비연결형 프로토콜 |
신뢰성 있는 데이터 전송 | 신뢰성 없는 데이터 전송 |
일대일 통신 | 일대일 통신/ 일대다 통신 |
데이터 경계 구분 안 함(Byte Stream Service) | 데이터 경계 구분함(Datagram Service) |
3. 인터넷계층
- 네트워크 접근계층의 도움을 받아 IP주소와 라우팅사용해서 데이터를 목적지까지 전달함
- 물리주소 대신 IP주소를 사용함
- IP 주소는 전세계적으로 유일성 보장함
- 다만 신뢰성은 없음(unreliable)-> 데이터에 문제 생기면 목적지에 도달 못할 수 있음, 도달해도 데이터 내용 손상 가능성 있음
4. 네트워크 엑세스
- 물리적 네트워크를 통한 실제 데이터 송수신 담당
- 네트워크 접근 계층에서는 물리적주소를 사용해서 통신함
패킷(Packet)?
- (네트워크에서 사용하는 작게 분할된 데이터 조각으로 네트워크에서 전송되는 데이터의 기본 단위)
- 데이터 전송하려면 각 프로토콜에서 정의한 제어 정보가 필요함(IP주소, 포트번호, 오류 체크 등)
- 제어정보는 위치에 따라 앞에 붙는 헤더(Header)랑 뒤에 붙는 트레일러(Trailer)로 나뉨
- 데이터는 이런 제어 정보가 결합한 형태로 전송되며, 이걸 패킷!이라고 부름
- 즉, 패킷은 제어정보+데이터
클라이언트, 서버
- 네트워크 프로그램은 클라이언트-서버 모델이 일반적
- 서비스를 요청하는 쪽이 클라이언트
- 클라이언트가 서버에 접속하려면 서버의 IP주소와 포트 번호를 알고 있어야 함
- 클라이언트가 요청한 서비스를 처리하는 쪽이 서버
- 서버는 클라이언트 주소 미리 알 필요 없음
- 클라이언트가 보낸 패킷에 클라이언트의 주소 정보가 들어가 있으니까!
루프백 주소
- 시스템 자신을 나타내는 주소로 내부적으로 사용
- 내부적으로 데이터를 보내고 받을 수 있어서 소프트웨어와 네트워크 구성 테스트 및 문제 해결하는데 도움됨!
- IPv4에서는 127.0.0.1
- IPv4? 인터넷 프로토콜 버전4 = IP의 네번째 버전
- 마침표로 구분된 4개의 숫자 그룹 형식으로 표현되는 32비트 숫자
- 사용가능한 주소의 고갈 문제 발생.. 그러나 아직도 널리 사용되고 있음
- IPv4? 인터넷 프로토콜 버전4 = IP의 네번째 버전
- IPv6에서는 0:0:0:0:0:0:0:1
- IPv6? 인터넷 프로토콜의 최신버전으로 IPv4를 계승해서 설계
- IPv4의 주소고갈 문제 해결하고자 개발됐음
- 128비트 주소 공간 사용함
- IPv6? 인터넷 프로토콜의 최신버전으로 IPv4를 계승해서 설계
'네트워크' 카테고리의 다른 글
[네트워크] TCP와 UDP의 특징 (0) | 2024.08.02 |
---|---|
[에티버스러닝] select함수 이용해서 여러 명 접속 가능한 TCP 에코 서버 (2) | 2023.06.01 |
[에티버스러닝] 프로그램/프로세스/쓰레드 개념정리 (0) | 2023.05.25 |
TCP 서버/클라이언트 두자리 자연수 합 구하는 연산식 통신 (1) | 2023.05.19 |
TCP 서버 / 클라이언트 함수 (1) | 2023.05.19 |