일일 정리

TCP의 신뢰적인 데이터 전송, 리눅스 - 자동 마운트

mysecurity 2025. 1. 21. 23:01

 

TCP의 신뢰적인 데이터 전송

 

● TCP의 ACK생성 권고

스탠다드와 가이드라인은 그 뜻에 차이가 있다.

 

스탠다드     : 법률 규칙/명령으로, 구체적인 제품을 지정하지는 않는다.

가이드라인 : 스탠다드에 적법한 권고사항으로, 구체적인 제품 지정이 가능하다.

 

TCP의 ACK생성 권고사항은 다음의 표와 같으며, 원한다면 다르게 설정할 수는 있다.

 

 

● 빠른 재전송

기존 타임아웃만으로 동작하는 재전송은 주기가 비교적 길어 세그먼트가 훼손되었을 때 송/수신자 간의 지연이 길다.

이전 글에서 보인 패킷이 훼손되었을 때의 시나리오를 살펴보면 훼손된 패킷을 재전송하기 까지 많은 중복 ACK가 전송되는 것을 볼 수 있다.

이를 이용하여, 만약 3번의 중복된 ACK가 송신자에게 전송되면 해당 패킷이 훼손되었다고 판단하여 재전송한다.

 

 

이제 재전송을 하는 경우는

 

1. 3번의 중복된 ACK가 송신자에게 전송되었을 경우

2. 타임아웃인 경우

 

두 가지가 있다. 이때 타임아웃인 경우로 재전송이 되었다면 그 네트워크는 3번의 중복된 ACK에 의한 경우보다 네트워크 상태가 심각한 상황임을 짐작할 수 있다.

 

TCP 흐름 제어

flow control(흐름 제어)은 수신자가 자신의 버퍼의 여유공간을 알려주어 버퍼의 용량을 초과하지 않도록 패킷의 흐름을 제어하는 것이다.

 

TCP 연결 관리

3 way handshake

: 클라이언트가 서로 통신하기 위해 통신망을 확보하는 과정이다.

 

1. 클라이언트가 서버에게 TCP SYN 세그먼트를 전송한다.

초기 seq#를 설정한다.

data는없다. 

 

2. 서버 는 SYN를 수신하고 SYNACK를 전송한다.

서버 : 변수 및 버퍼를 할당한다.

서버의 초기 seq#를 설정한다.

 

3. 클라이언트는 SYNACK수신 ACK를 전송한다. (data를 추가해도 된다.)

클라이언트 : 변수 및 버퍼를 할당한다.

 

리눅스 - 자동 마운트

●  /etc/fstab

/etc/fstab 파일은 시스템 시작 시 자동으로 마운트할 파일 시스템의 목록이나 옵션을 저장한다.

cat /etc/fstab 명령어로 출력된 화면

파일의 내부를 위와 같이 살펴볼 수 있다. 형식은 <장치,  마운트위치,  파일시스템타입,  옵션,  dump,  점검여부> 이다.

값이 없는 부분은 0으로 표시되어있는데, 유닉스에서 형식은 매우 중요하므로 함부로 깨지 않는 것이 좋다.

 

이 파일을 수정하여 마운트를 하는 경우, 오타가 나면 아예 부팅이 안되는 현상이 발생하므로 재부팅을 하기 전에 'mount -a' 명령어로 fstab의 모든 목록을 마운트해보도록 한다.

 

또는 /etc/rc.d 디렉토리의 rc.local 파일에 있는 명령어가 부팅 이후 자동으로 실행되므로 보다 해당 파일을 통해 마운트를 설정한다면 더욱 안전한 마운트가 가능하다.