● Well-Known Port (1)
- 인터넷표준화기국(IETF)에서 서버 포드번호를 표준으로 정한 것
- /etc/services 파일에 저장되어 있음
○ Port 7 (Echo)
- 서비스 : Echo Protocal
- 설명 : 클라이언트가 서버에 데이터를 보내면, 서버는 그 데이터를 그대로 반환한다.
○ TCP와 UDP의 사용 차이
- TCP : 정확하게 데이터를 보낼 때
- UDP : 신뢰성 없음
● Well-Known Port (2) - /etc/services
○ ftp : file transfort protocol
- 파일 전송을 위한 표준 네트워크 프로토콜입니다. 클라이언트와 서버 간의 파일 전송을 지원하며, TCP를 사용하여 연결을 수립하고 데이터 전송의 신뢰성을 보장합니다. FTP는 주로 웹 서버에 파일을 업로드하거나 다운로드하는 데 사용된다.
- 포트번호 21 : 접속 설정
- 포트번호 20 : 데이터 교환
○ SSH : Secure Shell
- SSH는 네트워크를 통한 안전한 원격 로그인 및 기타 네트워크 서비스를 제공하는 프로토콜이다. 주로 원격 서버에 안전하게 접근하여 명령을 실행하거나 파일을 전송하는 데 사용한다.
- 포트번호 22 사용
○ telnet
- 포트번호 23
○ smtp : Simple Mail Transfer Protocol
- 이메일 클라이언트와 이메일 서버, 그리고 이메일 서버 간에 이메일을 전송하는데 사용한다.
- TCO 포트 25번
- 보안 SMTP의 경우 포트 465 or 587
○ DNS : Domain Name system
- 사용자가 웹사이트에 접근할 때 도메인 이름을 입력하면 해당 도메인 이름에 대응하는 IP 주소를 찾는 역할을 한다. 이는 인터넷의 중요한 인프라 중 하나로, 사용자와 웹사이트 간의 원활한 연결을 지원한다.
- 포트번호 53
○ http : HyperText Transfer Protocol
- 포트번호 80
- 목적 : 웹 서버와 클라이언트(웹 브러우저) 간의 데이터 전송을 담당한다. 웹 페이지, 이미지, 스타일시트, 스크립트 파일 등을 포함하여 웹상의 다양한 콘텐츠를 전송한다.
○ https (HyperText Transfer Protocol Secure)
- 포트번호 443
- 목적 : HTTP의 보안 버전으로, 웹 서버와 클라이언트 간의 안전한 데이터 전송을 보장한다.
● 인터넷에서 유일한 AP 식별자
○ Family
- (Address Family == Protocol Family)
- AF_INET/PF_INET
○ IP Address
- (Network Address, Host Address)
- 168.254.100.50
○ Port Number
● IP 주소 변환
- pton : presentation to numbercial
- ntop : numerical to presentation
● struct sockaddr_in
-> 네트워크 프로그래밍에서 주로 사용되는 구조체로, 인터넷 프로토콜(IP) 주소와 포트 번호를 저장하기 위해 사용된다. 이 구조체는 주로 소켓 프로그래밍에서 소켓 주소를 설정하고 사용하는 데 필요하다.
-> #include <netinet/in.h>에 정의
1. 'sin_family' :
- 형식 : 'short'
- 설명: 주소 패밀리를 지정한다. IPv4의 경우 'AF_INET'으로 설정한다. 이 필드는 소켓의 주소 유형을 정의하며, 네트워크 프로토콜을 결정한다.
2. 'sin_port' :
- 형식 : 'unsigned short'
- 설명 : 포트 번호를 지정한다. 포트 번호는 네트워크 바이트 순서 (빅 엔디안)로 설정한다. 이를 위해 'htons()' 함수를 사용하여 호스트 바이트 순서에서 네트워크 순서로 변환한다.
- 예제 : 'sin_port = htons(80);' (포트 80번)
3. 'sin_addr' :
- 형식 : 'struct in_addr'
- 설명 : IP 주소를 저장한다. 'struct in_addr'는 IPv4 주소를 표현하는 구조체로, 단일 필드 's_addr'를 갖고 있다. IP 주소는 네트워크 바이트 순서로 저장된다.
- 예제 : sin_addr.s_addr = inet_addr ("192.169.1.1"); ' (IP 주소 "192.168.1.1")
4. 'sin_zero' :
- 형식 : 'char[8]'
- 설명 : 구조체 크기를 'struct sockaddr '와 맞추기 위한 패딩입니다. 일반적으로 사용되지 않는다.
- 현재는 잘 사용하지 않는다.
struct sockaddr_in {
unsigend short int sin_family;
uint_16t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
}
'인터넷과 소켓프로그래밍' 카테고리의 다른 글
소켓 개요 및 TCP 에코 서버 (0) | 2024.07.26 |
---|---|
소켓 프로그래밍을 위한 알아야할 기능들 (0) | 2024.07.25 |
서브넷 및 IPv6 주소 (3) | 2024.07.23 |
IPv4 (0) | 2024.07.20 |
공통통신기능 - 데이터전달 (0) | 2024.07.17 |