브래의 슬기로운 코딩 생활
네트워크 보안 기말고사 정리 본문
SOCKADDR_IN 구조체
멤버
sin_family:
타입: short
주소 체계를 지정합니다. 대부분의 경우 AF_INET을 사용하며, IPv4 주소 체계를 나타냅니다.
sin_port:
타입: unsigned short
포트 번호를 지정합니다. 네트워크 연결에서 어떤 프로세스와 통신할지를 식별하는 데 사용됩니다.
sin_addr:
타입: struct in_addr
IP 주소를 저장하는 구조체입니다. struct in_addr는 다시 s_addr이라는 unsigned long 형 멤버를 포함하고 있습니다.
sin_zero:
타입: char[8]
구조체의 크기를 맞추기 위한 더미 데이터입니다. 현재는 주로 사용되지 않지만, 예전에는 구조체 크기를 맞추기 위해 필요했습니다.
주소변환 관련 함수
주소체계 변환
함수: inet_addr()
• Dotted-Decimal Notation을 Big-Endian의 32비트 정수형 데이터로 변환하는 함수
함수: inet_network()
• Dotted-Decimal Notation을 호스트 데이터 형태의 32비트 정수형 데이터로 변환하는 함수
• 네트워크 사용을 위해서는 htonl() 함수 호출이 필요
함수: inet_aton()
• Dotted-Decimal Notation(문자열)을 32비트형 네트워크 주소(정수형)로 변환하는 함수
• inet_addr()과 유사하나, 두 번째 인자가 출력물이 됨
함수: inet_ntoa()
• 32비트형 네트워크 주소(정수)를 문자열 형태의 주소형태(Dotted-Decimal Notation)로 변환
• 출력결과물의 위치는 정적 메모리(static memory)에 기록됨
• Re-entrance 문제 주의(다중 스레드 사용 시)
IP 주소와 도메인명 변환
gethostbyname(): 도메인 명을 4바이트 정수(Big-Endian)로 변환
gethostbyaddr(): 4바이트 정수(Big-Endian)를 도메인 명으로 변환
inet_ntoa(): 32비트 2진수로 된 주소값을 “.”이 있는 십진수 문자열(Dotted-Decimal Notation)로 변환
inet_addr(): “.”이 있는 십진수 문자열 변수를 4바이트 정수(Big-Endian)로 변환
소캣함수
TCP 데이터 수신
함수: recv()
TCP 데이터 송신
함수 : send()
소켓 생성 함수
함수 : socket()
TCP Connect 함수
멀티플렉싱을 위한 함수
Select 기법
함수: FD_ZERO()
• 변수의 모든 비트를 0으로 설정
함수: FD_SET()
• 해당 FD 오프셋의 값을 1로 설정
함수: FD_CLR()
• 해당 FD 오프셋의 값을 0으로 설정
Poll 기법
함수: poll()
구조체: struct pollfd
네트워크 시험 툴
명령어: nc {-options} [hostname] [port]
할당(Binding) 시점
TCP :
• connect() 또는 bind() 함수 호출 시 바인딩
UDP :
• sendto() 또는 bind() 함수 호출 시 바인딩
'2-2 > 네트워크 보안' 카테고리의 다른 글
네트워크 보안 12주차 정리 - 2 (Multiplex 서버- poll 기법) (0) | 2023.11.21 |
---|---|
네트워크 보안 12주차 정리 -1 (Multiplex 서버- select 기법) (0) | 2023.11.21 |
네트워크 보안 11주차 정리 (소켓 및 TCP 프로그래밍) (0) | 2023.11.21 |
네트워크 보안 10주차 정리 (TCP 프로그래밍) (0) | 2023.11.07 |
네트워크 보안 9주차 정리 (네트워크용 기본 API) (0) | 2023.10.31 |